选择时间并使用SQL Server添加到getdate

时间:2013-02-25 13:30:24

标签: sql sql-server getdate

我的列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

但不幸的是结果错了

5 个答案:

答案 0 :(得分:1)

如果您想将时间从TYPE_TOURNE添加到current date并返回datetime那么;

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

OR 如果您需要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的{​​{1}}

TYPE_TOURNE

答案 1 :(得分:0)

或者:

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

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

答案 2 :(得分:0)

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

答案 3 :(得分: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()))))

答案 4 :(得分:0)

SELECT CAST(CONVERT(DATE, GETDATE()) AS DATETIME) + 
CAST(CONVERT(TIME, TYPE_TOURNE) AS DATETIME)
FROM   TOURNE