0

我有以下数据库列和值

MyDate datetimeMy_Time varchar(5)

存储的值是

2006-09-05 00:00:00.00016:47

现在我想添加这两列并获得一个datetime2006-09-05 16:47:00.000

我怎样才能在 SQL 中做到这一点?

更新:

某些行具有NULLDocDate 和 DocTime 的值。

所以我收到了类似的错误Conversion failed when converting date and/or time from character string

4

3 回答 3

1

尝试这个:

select dateadd(ss, datediff(ss, 0, @My_Time), @MyDate)

关键是要理解它与...相同

select dateadd(ss, datediff(ss, 0, cast(@My_Time as time)), @MyDate)

...但是转换是明确完成的。

编辑

对于默认时间和/或日期,请酌情使用 ISNULL 或 COALESCE。

例子:

SELECT 
  CAST(
      isnull(@date, '2000-1-1') + 
      isnull(@time, '0:0') 
    AS DATETIME)
于 2013-10-25T11:26:29.650 回答
1

简单地...

DECLARE @date DATETIME
DECLARE @time VARCHAR(5)

SET @date = '2006-09-05 00:00:00.000'
SET @time = '16:47'

SELECT CAST(@date + @time AS DATETIME) -- 2006-09-05 16:47:00.000
于 2013-10-25T11:31:22.707 回答
0

尝试

CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) as CombinedDate
于 2013-10-25T11:33:07.090 回答