查询返回0行

时间:2015-10-02 16:35:01

标签: sql-server-2008

我正在尝试运行一个简单的查询,只选择在特定日期内收到的请求。

这就是我所拥有的:

select * from [Table Name]  WHERE received_when(column name) like '2015-08-02%'  

以下是我执行select * from [Table Name]

时的列结果

2015-08-02 22:33:11.337 2015-08-02 22:33:57.243 2015-08-02 22:49:49.617 2015-08-02 22:50:34.600 2015-08-02 22:50:52.493 2015-08-02 22:51:12.600 2015-08-02 22:51:35.007

我在其他表上多次使用过这个查询,但由于某种原因,这会返回0行。谢谢,Emley

2 个答案:

答案 0 :(得分:0)

如果您的received_when列是日期时间,那么您将无法使用LIKE运算符对其进行可靠的查询。

试试这个

select * from [Table Name] WHERE received_when >= '2015-08-02' and received_when < '2015-08-03'

这将得到所有落在8-2-2015日期的所有内容

修改

Working SQL Fiddle of example.

答案 1 :(得分:0)

您没有指定received_when的类型,但我猜测它是date还是datetime。将其作为varchar处理(例如,使用like运算符)将隐式地将其转换为一个,并且您不应该依赖于您获得的格式。相反,您应明确转换它

SELECT * 
FROM   [Table Name]
WHERE  CONVERT(VARCHAR, [received_when], 105) = '02-08-2015'