如果我需要过滤行,WHERE
日期格式在哪里,yyyyMMdd
日期格式如何使用yyyy-MM-dd hh:mm:ss.mmm
子句?
例如:SELECT * FROM orders WHERE order_date = '20140510'
顺便说一句,此示例适用于行,其中yyyy-MM-dd 00:00:00.000
日期时间格式。
答案 0 :(得分:1)
您可以通过转换日期时间值来执行此操作:
declare @date datetime
set @date = '2014-09-04 15:52:00.000'
print CONVERT(VARCHAR(20), @date, 112)
您将获得此控制台输出:
20140904
因此,在您的方案中,您可以这样做:
SELECT * FROM orders WHERE CONVERT(VARCHAR(20), order_date, 112) = '20140510'
答案 1 :(得分:0)
使用转换
@date = '20140510'
SELECT * FROM orders WHERE order_date = CONVERT(date, CONVERT(varchar(8),@date ), 126)
For more info http://msdn.microsoft.com/en-IN/library/ms187928.aspx
答案 2 :(得分:0)
请尝试以下方法。这允许使用order_date
上的任何索引,如果您在CAST
上使用CONVERT
或order_date
,MSSQL将无法使用您的索引。
SELECT * FROM orders WHERE order_date >= '20140510' and order_date < '20140511'