我有一列 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
但不幸的是结果是错误的
我有一列 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
但不幸的是结果是错误的
如果您想从 to 添加时间TYPE_TOURNE
并按current date
then 返回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
SELECT CAST(CONVERT(DATE, GETDATE()) AS DATETIME) +
CAST(CONVERT(TIME, TYPE_TOURNE) AS DATETIME)
FROM TOURNE
任何一个:
SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), TYPE_TOURNE)
FROM TOURNE
或者,返回 TYPE_TOURNE 并处理表示层中的格式。
select DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))+DATEADD(hh,0, TYPE_TOURNE) FROM TOURNE
尝试这个:
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()))))