在sql中连接两个带日期和时间的列?

时间:2011-02-03 05:07:11

标签: sql sql-server tsql sql-server-2008

我有两列orderdate(03/02/2011)ordertime(10.34 am),其中我必须连接这两列,并在另一列中将其显示为日期时间值(03/02/2011 10:34:16.190) ....

任何建议?

4 个答案:

答案 0 :(得分:3)

通常,解决方案是在时间值上添加天数,其时间为零。您不清楚这两个值的数据类型,但是一个解决方案是:

With Inputs As
    (
    Select '20110302' As DateVal, '10:34 AM' As TimeVal
    )
Select DateAdd(d, DateDiff(d, 0, Cast(DateVal As datetime)), Cast(TimeVal as datetime))
From Inputs 

更明确的版本,假设输入是字符串并给出您的确切输入:

Set DateFormat MDY

With Inputs As
    (
    Select '03/02/2011' As DateVal, '10:34 AM' As TimeVal
    )
Select DateAdd(d, DateDiff(d, 0, Cast(DateVal As datetime)), Cast(TimeVal as datetime))
From Inputs

答案 1 :(得分:2)

假设您使用的是DATETIME,则需要先转换才能添加。

SELECT [orderdate] + CONVERT(datetime, [ordertime])

答案 2 :(得分:0)

您想以编程方式或在SQL Server中使用:

在Sql Server中:

选择orderdate + ordertime作为'YourColumnName'

希望这有帮助。

答案 3 :(得分:0)

在MySQL中,它会像这样工作

SELECT Concat(orderdate, " ", ordertime) FROM vendors ORDER BY vend_name;