Это SQL, где утверждение правильно? - PullRequest
3 голосов
/ 28 мая 2010

У меня есть 10 строк на сегодняшнюю дату, но мое утверждение select на основе даты, похоже, не работает ....

SELECT Id,WirelessId,RegNo,DriverName1,MobileNo1,DriverName2,MobileNo1 from
 DailySchedule where IsDeleted=0 and CreatedDate='2010-05-28'

Любое предложение ...

Ответы [ 7 ]

7 голосов
/ 28 мая 2010

Только если назначенные им даты сегодня полночь. Это может быть лучше сделать:

CreatedDate BETWEEN '2010-05-28 00:00' AND '2010-05-29 00:00'
1 голос
/ 28 мая 2010

Если вы хотите, чтобы все записи за 28 мая, я бы сделал

and CreatedDate >='20100528'
and CreatedDate < '20100529'

Обратите внимание на безопасный формат ISO (ГГГГММДД) без черточек

Также посмотрите на КакМежду работой с датами в SQL Server? , чтобы понять, почему между ними не могут быть все результаты, которые вы хотите

0 голосов
/ 30 мая 2010

Это тоже должно работать

select Id, 
  WirelessId,
  RegNo,
  DriverName1,
  MobileNo1,
  DriverName2,
  MobileNo1 
from DailySchedule 
where IsDeleted=0 
  and CONVERT(varchar,CreatedDate,101) ='05/28/2010' 
0 голосов
/ 28 мая 2010
SELECT Id,WirelessId,RegNo,DriverName1,MobileNo1,DriverName2,MobileNo1 from
 DailySchedule where IsDeleted=0 and date_format(CreatedDate, "%Y-%m-%d")='2010-05-28'
0 голосов
/ 28 мая 2010

Недостаточно информации для продолжения, но я подозреваю, что у ваших дат есть компонент времени, поэтому они не совпадают точно со строкой.

Попробуйте использовать:

datediff(day, CreatedDate, '28-may-2010')) = 0
0 голосов
/ 28 мая 2010

Я бы проверил, чтобы увидеть тип столбца CreatedDate и убедился, что передаваемая вами строка правильно конвертируется в дату.

Когда вы говорите, что у вас 10 строк, это подтверждается визуально или с помощью запроса, выполняемого в консоли?

0 голосов
/ 28 мая 2010

Предполагая, что CreatedDate является datetime или date, я не вижу, что не так с синтаксисом предложения where. Может быть, поле IsDeleted для этих столбцов на самом деле NULL? (Или ненулевой, во всяком случае.)

Редактировать: что говорит Дейв, или DATE (CreatedDate) = '2010-05-28'

...