Sql字符串与时间比较问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql字符串与时间比较问题相关的知识,希望对你有一定的参考价值。
我有一个datetime字段,一个varchar(10)字段,datetime存放的是日期,如2014-11-11 00:00:00.000,
varchar(10)字段存放的是时间,如12:50,我想查询出比当前时间晚两个小时的数据,也就是说大于2014-11-11 12:50:00.000 的数据,应该怎么写SQL语句
字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较。
oracle在执行sql的时候有些时候会自动转换,比如:
select
*
from
chan_customer
cc
where
cc.customer_id
=
'1';
即使customer_id是数字型的也可以查出来,但是oracle有区分字符和数字
就是通过加不加单引号来区分。 参考技术A 如果你的 时间段是分开存的 比如 小时存12 分钟存 50 我就有办法
你就可以通过 dateadd(Hour,12,dateadd(minute,50,datetime)) 来获取2014-11-11 12:50:00.000这个时间 那个12 和 50 你可以替换成 分开存的 小时 字段 与分钟字段本回答被提问者采纳
sql中比较一个字符串中是不是含有另一个字符串中的一个字符
str1='1`2`3`4`5'str2='1`2`3`4'比较str1与str2在str1中有'1234'其中任何一个就满足条件,当然具体数据不会如此规则,间隔符也不确定。要在SQL语句中实现。
sql中比较一个字符串中是否含有另一个字符或字符串可用charindex函数。
如:
结果为:
返回值2为“爱”在“我爱祖国”中的位置。
如:
select charindex(\'a\',\'我爱祖国\')结果为:
返回值为0,则代表“a”不存在于“我爱祖国”字符串中。
语法:
CHARINDEX ( expression1 , expression2 , [ start_location ] )
参数:
expression1
一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
参考技术A 1、既然你要判断其中一个是否包含了另一个,那你条件肯定要给SQL,SQL才能帮你找到的,2、这个条件肯定是你要给出的。比如str1='1`2`3`4`5'str2='1`2`3`4'那你叫SQL判断的其中的话,可以:Select CharIndex('5',str1) --这里的“5”具体要代入什么值去判断,就要你给出来了。Select CharIndex('2`3',str1) --这类的SQL是可以帮你去判断的。不包含的话就返回0否则就返回第一个相同字符的位置,比如这个就返回3以上是关于Sql字符串与时间比较问题的主要内容,如果未能解决你的问题,请参考以下文章
sql存储过程中时分秒字符串怎么比较大小 如08:30:00 与13:00:00怎么比较
ms sql server字符串与另一个具有多个值的字符串进行比较
T-SQL JSON:JSON_QUERY 在将对象与字符串进行比较后返回 json 字符串