2012-09-10 58 views
0

我的SQL表中有兩列。一個是日期時間,另一個是時間 他們在格式, DateTime - 2012-04-05 16:58:56.000和時間 - 21:30:00.00000使用SQL查詢連接日期和時間變量

我需要編寫一個查詢將返回一列如 - 2012-04-05 21:30:00.000

你能幫助我嗎?

回答

8

在SQL-Server 2008中,您可以添加值是這樣的:

select cast(dt as date) + cast(tm as datetime) 
from yourtable 

請參閱 SQL Fiddle with Demo

上述不再有效,這裏是一個將在SQL Server中工作的更新版本。這也可以edited to include additional precision

SELECT dateadd(day, datediff(day,'19000101',dt), CAST(tm AS DATETIME)) 
from yourtable 

See Demo

+1

簡單而智能。謝謝。 –

+0

這從2012年不起作用,這實際上改變了日期到一些新的日期 – Avi

+0

@hsanivag考慮到這被標記爲SQL Server 2008的答案是特定於該版本。 SQL Fiddle鏈接確認它確實適用於該版本。 – Taryn

-1

試試這個::

Select CONCAT(DATE(column_dateTIME),column_Time) from my Table 
+0

返回'「日期」是無法識別的內置函數name.' –

+0

@SashiKant的問題是有關SQL服務器,我已經重新標記它這樣已經。你的sql服務器功夫莎什怎麼樣? – Fluffeh

-2

試試這個:

這應該在SQL SERVER工作

select CONVERT(varchar(10),dt_col,121)+' '+cast(t_col as varchar(20)) 
from your_table 
-1

對於MySQL

Select CONCAT_WS(" ", date(dattime_columnname), time(time_column)) from table_name; 

對於SQL Server 2008:

select convert(varchar, datetime_column, 103) + ' ' + convert(varchar, time_column, 114) 
0

這爲我工作。

Select DateAdd(d, DateDiff(d, 0, Cast(OrderDate As datetime)), Cast(Delivery_Time as datetime)) From myTable 
0
SELECT CAST(date_col AS DATETIME)+CAST(time_col AS DATETIME) FROM your_table 

測試在SQL Server 2012中

+0

工作正常,但具體情況。請查看下面的鏈接以獲取更多解釋http://stackoverflow.com/a/700647/2634848 – Avi