Sql server SQL Server LIKE子句的问题
我相信这是一个非常简单的问题,但我一直没能解决它。我的问题是:Sql server SQL Server LIKE子句的问题,sql-server,sql-like,Sql Server,Sql Like,我相信这是一个非常简单的问题,但我一直没能解决它。我的问题是: select column1 from table1 with(nolock) where column1 like '2011-07-0[78]%' order by column1 desc 可以看出,我正在查询一行,查找今天或昨天的时间戳 其中一行中的完整时间戳如下所示: 2011-07-08 12:16:39.553 我已经做了很多次类似的事情,没有遇到任何问题,但是不管我做什么,上面的查询都不会返回任何结果。(是的,列中
select column1 from table1 with(nolock)
where column1 like '2011-07-0[78]%'
order by column1 desc
可以看出,我正在查询一行,查找今天或昨天的时间戳
其中一行中的完整时间戳如下所示:
2011-07-08 12:16:39.553
我已经做了很多次类似的事情,没有遇到任何问题,但是不管我做什么,上面的查询都不会返回任何结果。(是的,列中有今天和昨天的时间戳)
我是否犯了语法错误?我疯了吗?数据库中有侏儒干扰我的查询吗?请帮忙!非常感谢你 试试这个:
select column1 from table1 with(nolock)
where Cast(column1 as DateTime) between '2011-07-07' AND '2011-07-08'
order by column1 desc
如果该字段的数据类型为
datetime
或smalldatetime
,则LIKE
将无法按预期工作
您可以执行DATEPART
函数或之间的,如:
WHERE DATEPART(Year, column1) = 2011
AND DATEPART(Month, column1) = 7
AND DATEPART(Day, column1) IN (7, 8)
或
其中第1列介于“2011-07-07”和“2011-07-08”之间
请记住,之间的
是包容的。美丽!非常感谢你的解释。“我知道它必须很简单,我只是看不到它,但那是完全正确的。”乔希-很乐意帮忙。每当您出现意外行为时,您可以做的第一件事就是检查您的数据类型!