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”之间


请记住,
之间的
是包容的。

美丽!非常感谢你的解释。“我知道它必须很简单,我只是看不到它,但那是完全正确的。”乔希-很乐意帮忙。每当您出现意外行为时,您可以做的第一件事就是检查您的数据类型!