关于适用“所在地”条件:
WHERE DateFilled BETWEEN '02/01/2014' AND '02/28/2014'我的语法不是检测02/28/2014上填充的值。
如果我将语法写成
WHERE DateFilled >= '02/01/2014' 我正在得到输出。
在Server表中,DateFilled列的值如下所示。
2014-02-28 09:24:00.000可能是什么原因?任何日期转换都是必需的。如何使用StartDate和EndDate条件获取BETWEEN?
发布于 2014-03-07 22:57:00
我假设DateFilled具有DateTime的数据类型或包含时间部分的其他日期类型。在T中使用DateTime值时,请注意总是包含时间,如果没有指定,默认使用午夜。参见:http://technet.microsoft.com/en-us/library/ms180878(v=sql.105).aspx#ConversionBetweenStringLiteralsandDateandTimeDataTypes,当输入字符串为“仅日期”时,则“时间部分默认为00:00:00”。在您的示例中,字符串"02/28/2014“转换为日期时间值为2014-02-2800:00:00.000。
您的查询被解释为'02/01/2014 00:00:00.000‘和'02/28/2014 00:00:00 :00.000’之间的.000,因此找不到日期为2014-02-28 09:24:00.000 (在午夜后发生的记录)。
您的查询可以重写为
SELECT Column1, Column2
FROM MyTable
WHERE DateFilled >= '02/01/2014'
AND DateFilled < '03/01/2014';发布于 2014-03-08 19:06:55
尝试:
WHERE CAST(DateFilled AS DATE) BETWEEN '02/01/2014' AND '02/28/2014'这将日期时间变量转换为不包含时间的日期变量。不过,这在Server 2000或2005中不起作用。Server 2008中引入了日期数据类型。
https://dba.stackexchange.com/questions/60458
复制相似问题