выберите время и добавьте в getdate с помощью SQL Server

у меня есть столбец типа datetime TYPE_TOURNE, который содержит «1900-01-01 05:15:00.000», я хочу выбрать только час и минуту и ​​добавить в getdate().

пример: сейчас 25/02/2013, тогда результат = 2013-02-25 05:15:00.000

select DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))+DATEPART(hh, TYPE_TOURNE) FROM TOURNE

но к сожалению результат неверный


person user1958628    schedule 25.02.2013    source источник
comment
но вы получаете желаемый формат для вывода?   -  person c0dem0nkey    schedule 25.02.2013


Ответы (3)


Если вы хотите добавить время от TYPE_TOURNE до current date и вернуться как datetime, тогда;

Select convert(datetime,
               convert(varchar, getdate(),112) + ' ' + 
               convert(varchar, TYPE_TOURNE, 114)
              ) newDate
From TOURNE

ИЛИ если вам нужен формат yyyy-mm-dd hh:mm:ss.mmm, конвертируйте в varchar with 121 format

Select convert(varchar,
               convert(datetime,
                 convert(varchar, getdate(),112) + ' ' + 
                 convert(varchar, TYPE_TOURNE, 114)
              ), 121) newDate
From TOURNE

ИЛИ если вам нужно только hour & minutes из TYPE_TOURNE, тогда

Select convert(varchar,
               convert(datetime,
                 convert(varchar, getdate(),112) + ' ' + 
                 left(convert(varchar, TYPE_TOURNE, 108),6) + '00'
              ), 121) newDate
From TOURNE
person Kaf    schedule 25.02.2013

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

DECLARE @TimeHolder DATETIME = '1900-01-01 05:15:00.000'

SELECT DATEADD(MINUTE, DATEPART(MINUTE, @TimeHolder), 
                   DATEADD(HOUR, DATEPART(HOUR, @TimeHolder), 
                        DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))))
person Sina Iravanian    schedule 25.02.2013

Либо:

SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), TYPE_TOURNE)
FROM TOURNE

или верните TYPE_TOURNE и обработайте форматирование на уровне представления.

person AdaTheDev    schedule 25.02.2013