2015-01-12 3 views
0

Я хочу ввести условие даты в поле времени даты в SQL Server.Выберите условие для даты для поля даты и времени

Поле datetime похоже на это 2011-01-19 17:57:18.350, и когда я выполняю ниже запрос, он не дает никаких результатов.

select top 1000 * 
from [dbo].[RouteState] 
where convert (date, logtime, 101) = '12-01-2015' 

Может кто-нибудь помочь мне, что здесь не так?

+1

Я думаю, что 101 возвращает дату в формате гггг-ММ-ДД, тогда как вы сравниваете с ДД-ММ-ГГГГ – Nasir

+0

Привет Насир , Вы думаете, это 121? – vkrams

+0

Ah .. Его 105 и я получил некоторые результаты тоже .. – vkrams

ответ

0

Нет необходимости преобразовывать столбец datetime во все сферы применения. Вместо этого используйте закрытый интервал и измените формат строкового литерала на yyyymmmdd, чтобы убедиться, что SQL Server будет интерпретировать значение даты таким же образом, независимо от региональных параметров и параметров формата даты.

select top 1000 * 
from [dbo].[RouteState] 
where logtime >= '20150112' and 
     logtime < '20150113'; 

Для получения дополнительной информации о литье колонки на сегодняшний день вы можете посмотреть на Cast to date is sargable but is it a good idea?

Смежные вопросы