Получить дату завтра

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

Ниже мой код:

select * 
from tblcalendarentries
where convert(varchar,tblcalendarentries.[Start Time],101) 
      = convert(varchar, GETDATE() +1, 101)

Ответы

Ответ 1

Чтобы получить дату завтра, вы можете использовать приведенный ниже код, который добавит 1 день к текущей системной дате:

SELECT DATEADD(day, 1, GETDATE())

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():

GETUTCDATE()

Возвращает текущую временную метку системы базы данных как значение даты и времени. Смещение часового пояса базы данных не включено. Это значение представляет текущее время UTC (согласованное универсальное время). Это значение выводится из операционной системы компьютера, на котором запущен экземпляр SQL Server.

Ответ 2

Попробуйте следующее:

SELECT GETDATE() + 1

Это добавляет один день к текущей дате

Ответ 3

Укажите размер varchar в convert()

where convert(varchar(11),tblcalendarentries.[Start Time],101) = convert(varchar(11), GETDATE() +1, 101)

Ответ 4

Я бы написал:

where
  DATEADD(day,DATEDIFF(day,0,tblcalendarentries.[Start Time]),0) =
  DATEADD(day,DATEDIFF(day,0,GETDATE()),1)

Это позволяет полностью конвертировать даты в строки, а также удалять временную часть из обоих значений.

Ответ 5

Я думаю, что если вы добавите его к дате, он даст дату следующего дня.

 DATE+1

Это должно быть хорошо. К сожалению, у меня нет доступа к коду SQL SERVER здесь, чтобы предоставить код