将nvarchar与DateTime sqlserver相加

时间:2016-08-29 14:50:25

标签: sql sql-server datetime sum

我有两列nvarchar(5)

enter image description here

我希望将这些列的小时与datetime列相加。

enter image description here

例如。如果我想在13:00添加第一行的1996-09-10 00:00:00,我应该得到:1996-09-10 13:00:00

3 个答案:

答案 0 :(得分:2)

如果您希望结果是日期时间,您只需添加它们,SQL Server将隐式转换:

C:\\Program Files

1996-09-10 13:00:00.000

如果您使用的是datetime2,则它们不兼容:

DECLARE @TESTDT datetime 
SET @TESTDT = '1996-09-10 00:00:00'

DECLARE @TESTHR nvarchar(5) 
SET @TESTHR = '13:00'

SELECT @TESTDT + ISNULL(@TESTHR,'00:00')

Msg 402,Level 16,State 1,Line 6 数据类型datetime2和nvarchar在add运算符中不兼容。

答案 1 :(得分:2)

您可以使用以下内容:

DECLARE @time nvarchar(5) = '13:00',
        @date datetime = '1996-09-10 00:00:00.000'

SELECT @date + CAST(@time as datetime)

会给你:

1996-09-10 13:00:00.000

答案 2 :(得分:0)

你可以嵌套这些......

>=

参考:https://msdn.microsoft.com/en-us/library/ms186819.aspx