将字符串时间(如'18:15)转换为DateTime,如23/09/2010 18:15:00

时间:2010-09-23 07:08:21

标签: sql sql-server-2005 tsql

如何将VARCHA R时间转换为'18:15'DateTime,例如23/09/2010 18:15:00。 可以有任何日期格式我只想拥有日期和时间。

原因是我的数据库时间为VARCHAR(5)类型。我有来自用户的输入,字符串的时间。我想比较这个

WHERE MyTable.Time < @userProvidedTime

2 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你的想法,但这应该可以解决问题:

Declare @time varchar(10)

set @time = '18:15'

Select Cast(floor(cast(getdate() as float))as datetime) + @time

答案 1 :(得分:0)

使用时间函数:

DECLARE @userProvidedTime AS CHAR(5);
SET @userProvidedTime = '18:15';

SELECT DATEADD(DAY, 
          DATEDIFF(DAY, '1990-01-01 00:00:00.000', CURRENT_TIMESTAMP), 
          '1990-01-01 00:00:00.000'), 
+ CAST(@userProvidedTime AS DATETIME);