0

我有一列 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

但不幸的是结果是错误的

4

5 回答 5

1

如果您想从 to 添加时间TYPE_TOURNE并按current datethen 返回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
于 2013-02-25T13:34:40.727 回答
0
SELECT CAST(CONVERT(DATE, GETDATE()) AS DATETIME) + 
CAST(CONVERT(TIME, TYPE_TOURNE) AS DATETIME)
FROM   TOURNE
于 2013-02-25T13:46:44.373 回答
0

任何一个:

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

或者,返回 TYPE_TOURNE 并处理表示层中的格式。

于 2013-02-25T13:34:25.750 回答
0
select DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))+DATEADD(hh,0, TYPE_TOURNE) FROM TOURNE
于 2013-02-25T13:35:44.633 回答
0

尝试这个:

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()))))
于 2013-02-25T13:37:18.397 回答