Подтвердить что ты не робот

Как добавить время в DateTime в SQL

Я пытаюсь добавить пользовательское время к дате в SQL Server 2008 R2.

Вот что я попробовал

SELECT DATEADD(hh, 03, DATEADD(mi, 30, DATEADD(ss, 00, DATEDIFF(dd, 0,GETDATE())))) as Customtime

Используя приведенный выше запрос, я могу это сделать.

Но есть ли какой-либо сокращенный метод, уже доступный для добавления пользовательского времени в datetime?

4b9b3361

Ответ 1

Попробуйте это

SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), '03:30:00')

Ответ 2

Для меня этот код выглядит более явным:

CAST(@SomeDate AS datetime) + CAST(@SomeTime AS datetime)

Ответ 3

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

SELECT  DATEDIFF(dd, 0,GETDATE()) + CONVERT(DATETIME,'03:30:00.000')

Ответ 4

Попробуйте это

SELECT DATEADD(MINUTE,HOW_MANY_MINUTES,TO_WHICH_TIME)

Здесь MINUTE является константой, которая указывает, что er собираются добавлять/вычитать минуты из спецификатора TO_WHICH_TIME. HOW_MANY_MINUTES - это интервал, по которому нам нужно добавить минуты, если он указан отрицательный, время будет вычтено, иначе будет добавлен спецификатор TO_WHICH_TIME, а TO_WHICH_TIME - это время, в которое вы добавляете MINUTE.

Надеюсь, что это поможет.

Ответ 5

Или попробуйте альтернативный метод с использованием типа данных времени:

DECLARE @MyTime TIME = '03:30:00', @MyDay DATETIME = CAST(GETDATE() AS DATE)

SELECT @[email protected]

Ответ 6

Вы можете сделать:

SELECT GETDATE()+'03:30:00'

Ответ 7

Следующее прост и работает на SQL Server 2008 (SP3) и вверх:

PRINT @@VERSION
PRINT GETDATE()
PRINT GETDATE() + '01:00:00'
PRINT CONVERT(datetime,FLOOR(CONVERT(float,GETDATE()))) + '01:00:00'

С выходом:

Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) 
Mar 15 2017  6:17PM
Mar 15 2017  7:17PM
Mar 15 2017  1:00AM

Ответ 8

Время начала дня: SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), '00:00:00')

Время окончания дня: SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), '23:59:59')