2013-12-10 4 views
0

Я пытаюсь запустить запрос, который возвращает значения на основе вчерашней даты. В этом случае, сколько товаров было отправлено вчера. Это мой запрос:sql-параметры для даты и времени

shh.SHIP_DATE = dateadd(dd, -1, getdate()) 

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

shh.SHIP_DATE = '2013-12-09' 
+1

Это не запрос. Где ваш реальный код? –

+0

Полный код SELECT * ОТ zzoshprh КАК Тсс INNER JOIN zzoshprd КАК SHD ПО shh.PKEY = shd.fkey ГДЕ \t (shd.line_status = 'I') и (В shh.CUSTOMER (» norhteast», 'юго-восток')) \t \t \t \t И (shh.CONF_TYPE = 'А') \t \t \t \t И (shd.style <> '') Giftbox \t \t \t \t И (shh.SHIP_DATE = dateadd (dd, -1, getdate())) – user3088661

ответ

0

ли SHIP_DATE столбец даты или Дата и время? Я предполагаю, что это столбец datetime, но сохраняет только значение даты, поэтому, когда вы используете getdate(), вы также получите значение времени. Вы можете легко заставить его работать с использованием предиката (shh.SHIP_DATE = cast(dateadd(dd, -1, getdate()) as date))

+0

безупречный спасибо. Я не мог понять, как избавиться от временной части. – user3088661

0

GETDATE() также включает в себя текущее время. Вам нужно усечь часть времени. Там потерял из способов сделать это - вот один:

shh.SHIP_DATE = DATEADD(dd, DATEDIFF(dd, 0, getdate())-1, 0) 

переводится - добавить один меньше, чем количество дней между датой «0» и сегодня на сегодняшний день «0»

+0

это сработало. попробовал оба ответа. спасибо за помощь. – user3088661

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