我的列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
但不幸的是结果错了
答案 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