在使用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
我已经查看了大约十个网站,包括这个网站上的答案(像这个),他们都似乎同意加号应该起作用,但是我却收到了错误信息:
Msg 8117, Level 16, State 1, Line 1
Operand data type date is invalid for add operator.
所有字段都是非零且非空的。我还尝试过使用CONVERT函数并尝试将这些结果转换为varchars,但遇到相同的问题。这不可能难成我这样子吧。
可以有人告诉我为什么这样不起作用吗?谢谢任何帮助。
CollectionDate
上没有时间部分(即是一个带有00:00:00
的日期)。如果不是这种情况,则会返回错误的结果。而第一个转换为datetime的转换是不必要的。 - Lamak