2011-02-03 18 views
2

我有两列orderdate(03/02/2011)ordertime(10.34 am)在我所来连接这两列,并显示在另一列datetime值(03/02/2011 10:34:16.190) ....在sql中连接两列与日期和时间?

什么建议吗?

+0

你是怎么从'10:34 AM`的输入中获得`10:34:16.190`的时间? – Thomas 2011-02-03 06:45:10

+1

可能重复[如何将来自一个字段的日期与来自另一个字段的时间相结合 - MS SQL Server](http://stackoverflow.com/questions/700619/how-to-combine-date-from-one-field-with -time-from-another-field-ms-sql-server) – 2011-02-03 07:20:38

回答

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 
0

要在编程或SQL Server:

在SQL服务器:

选择订购日期+ ordertime为 'YourColumnName'

希望这有助于。

0

在MySQL,它会像这样工作

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

假设你是一个DATETIME工作,你需要转换,然后才能添加。

SELECT [orderdate] + CONVERT(datetime, [ordertime]) 
相关问题