MS SQL - WHERE子句中的yyyyDDmm日期格式

时间:2014-09-04 13:45:14

标签: sql-server date datetime where datetime-format

如果我需要过滤行,WHERE日期格式在哪里,yyyyMMdd日期格式如何使用yyyy-MM-dd hh:mm:ss.mmm子句?

例如:SELECT * FROM orders WHERE order_date = '20140510'

顺便说一句,此示例适用于行,其中yyyy-MM-dd 00:00:00.000日期时间格式。

3 个答案:

答案 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上使用CONVERTorder_date,MSSQL将无法使用您的索引。

SELECT * FROM orders WHERE order_date >= '20140510' and order_date < '20140511'
相关问题