日期之间在SQL SERVER中不起作用

时间:2014-02-26 11:40:37

标签: sql date sql-server-2012

我有一个非常简单的SQL,可以从一系列日期中选择数据。所以,例如,如果我有,

SELECT ...... WHERE PV.[Time] BETWEEN '02/26/2014' AND '02/26/2014'

此SQL Select语句未在02/26/2014中选择数据。请帮忙

2 个答案:

答案 0 :(得分:2)

您当前的语句BETWEEN '02/26/2014' AND '02/26/2014'左右两侧具有相同的值,因此等同于= '02/26/2014'

这只会在2月26日午夜带回行。使用

 WHERE PV.[Time] >= '20140226' AND PV.[Time] < '20140227'

答案 1 :(得分:1)

对于日期使用非可疑的字符串格式总是更可取(1/2/2000可以解释为01-feb-2000或02-jan-2000,具体取决于您的本地设置)。我更喜欢ISO格式yyyymmdd或ODBC规范yyyy-mm-dd,并且在处理日期时始终使用CONVERT。但这不是你的问题:))

您的查询存在的问题是您实际上是在过滤日期BETWEEN '02/26/2014 00:00:00' AND '02/26/2014 00:00:00',因此您只能在日期时间获得值。要获取整天02/26/2014的日期时间值,请使用以下命令:

SELECT ...
WHERE PV.[Time] >= '2014-02-26' AND PV.[Time] < dateadd(day, 1, '2014-02-26');