Дата и время SQL в предложении WHERE - PullRequest
0 голосов
/ 04 сентября 2018

Мне нужно использовать сегодняшнюю дату в предложении WHERE заявления как 23:59 для сегодняшней даты. например, если сегодня 09/04/2018, то я хочу '09 / 04/2018 23:59 '. Я попробовал следующее, но не сработало:

DECLARE @today SMALLDATETIME

SET @today = DATEADD(month, ((YEAR(GETDATE()) - 1900) * 12) + MONTH(GETDATE()) - 1, DAY(GETDATE()) - 1) + ' 23:59:59'

PRINT @today

Пожалуйста, руководство

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Если хотите, вы можете сделать это с арифметикой даты:

SET @today = dateadd(minute, -1, cast(dateadd(day, 1, cast(getdate() as date)) as smalldatetime));

Я беспокоюсь о попытке получить последнюю минуту дня. Это говорит о том, что вы можете пытаться использовать between или <= для datetime. Обычно лучше избегать конструкций и использовать <.

0 голосов
/ 04 сентября 2018

Вы можете использовать DATETIMEFROMPARTS:

DECLARE @t DATE = GETDATE();
SELECT DATETIMEFROMPARTS(YEAR(@t),MONTH(@t),DAY(@t),23,59,0,0);

Демоверсия DBFidde

...