Я пытаюсь получить дату tomorrows в инструкции sql для сравнения даты, но она не работает.
Ниже мой код:
select *
from tblcalendarentries
where convert(varchar,tblcalendarentries.[Start Time],101)
= convert(varchar, GETDATE() +1, 101)
Я пытаюсь получить дату tomorrows в инструкции sql для сравнения даты, но она не работает.
Ниже мой код:
select *
from tblcalendarentries
where convert(varchar,tblcalendarentries.[Start Time],101)
= convert(varchar, GETDATE() +1, 101)
Чтобы получить дату завтра, вы можете использовать приведенный ниже код, который добавит 1 день к текущей системной дате:
SELECT DATEADD(day, 1, GETDATE())
Возвращает текущую временную метку системы баз данных как значение даты и времени без смещения часового пояса базы данных. Это значение выводится из операционной системы компьютера, на котором запущен экземпляр SQL Server.
DATEADD (datepart, number, date)
Возвращает указанную дату с указанным интервалом (целое число со знаком), добавленным к указанной дате части этой даты.
Итак, добавив это в ваш код в предложении WHERE
:
WHERE CONVERT(VARCHAR, tblcalendarentries.[Start Time], 101) =
CONVERT(VARCHAR, DATEADD(DAY, 1, GETDATE()), 101);
Прежде всего, GETDATE()
предоставит вам сегодняшнюю дату в следующем формате:
2013-04-16 10:10:02.047
Затем, используя DATEADD()
, вы можете добавить (или вычесть, если требуется) дату или временной интервал с указанной даты. Таким образом, интервал может быть: год, месяц, день, час, минута и т.д.
Работа с часовыми поясами?
Если вы работаете с системами, которые пересекают часовые пояса, вы также можете рассмотреть возможность использования GETUTCDATE()
:
Возвращает текущую временную метку системы базы данных как значение даты и времени. Смещение часового пояса базы данных не включено. Это значение представляет текущее время UTC (согласованное универсальное время). Это значение выводится из операционной системы компьютера, на котором запущен экземпляр SQL Server.
Попробуйте следующее:
SELECT GETDATE() + 1
Это добавляет один день к текущей дате
Укажите размер varchar
в convert()
where convert(varchar(11),tblcalendarentries.[Start Time],101) = convert(varchar(11), GETDATE() +1, 101)
Я бы написал:
where
DATEADD(day,DATEDIFF(day,0,tblcalendarentries.[Start Time]),0) =
DATEADD(day,DATEDIFF(day,0,GETDATE()),1)
Это позволяет полностью конвертировать даты в строки, а также удалять временную часть из обоих значений.
Я думаю, что если вы добавите его к дате, он даст дату следующего дня.
DATE+1
Это должно быть хорошо. К сожалению, у меня нет доступа к коду SQL SERVER здесь, чтобы предоставить код