sql – 将日期和时间组合(连接)到日期时间

前端之家收集整理的这篇文章主要介绍了sql – 将日期和时间组合(连接)到日期时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用sql Server 2008,此查询非常有用:
select CAST(CollectionDate as DATE),CAST(CollectionTime as TIME)
from field

给我两个这样的列:

2013-01-25  18:53:00.0000000
2013-01-25  18:53:00.0000000
2013-01-25  18:53:00.0000000
2013-01-25  18:53:00.0000000
    .
    .
    .

我正在尝试使用加号将它们组合成单个日期时间,如下所示:

select CAST(CollectionDate as DATE) + CAST(CollectionTime as TIME)
from field

我查看了大约十个网站,包括这个网站上的答案(如this one),他们似乎都同意加号应该有效,但我收到错误

Msg 8117,Level 16,State 1,Line 1
Operand data type date is invalid for add operator.

所有字段都是非零且非空.我也尝试过CONVERT函数并尝试将这些结果转换为varchars,同样的问题.这不会像我做的那么难.

有人可以告诉我为什么这不起作用?谢谢你的帮助.

解决方法

假设基础数据类型是日期/时间/日期时间等.
SELECT CONVERT(DATETIME,CONVERT(CHAR(8),CollectionDate,112) 
  + ' ' + CONVERT(CHAR(8),CollectionTime,108))
  FROM dbo.whatever;

如果它们不是,为什么不是,为了获得有意义的答案,您需要告诉我们它们是什么类型以及存储数据的格式.或者只是修复表格.

猜你在找的MsSQL相关文章