MS SQL - формат даты yyyyDDmm в предложении WHERE
Как пользоваться WHERE
пункт для yyyyMMdd
формат даты, если мне нужно отфильтровать строки, где yyyy-MM-dd hh:mm:ss.mmm
формат даты и времени?
Например: SELECT * FROM orders WHERE order_date = '20140510'
Кстати, этот пример работает для строк, где yyyy-MM-dd 00:00:00.000
формат даты и времени.
3 ответа
Решение
Вы можете сделать это путем преобразования значения даты и времени следующим образом:
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'
Пожалуйста, попробуйте следующее. Это позволяет любые индексы на order_date
использоваться, если вы используете CAST
или же CONVERT
на order_date
MSSQL не сможет использовать ваши индексы.
SELECT * FROM orders WHERE order_date >= '20140510' and order_date < '20140511'
Использовать конвертировать
@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