我的SQL表中有兩列。一個是日期時間,另一個是時間 他們在格式, DateTime - 2012-04-05 16:58:56.000
和時間 - 21:30:00.00000
使用SQL查詢連接日期和時間變量
我需要編寫一個查詢將返回一列如 - 2012-04-05 21:30:00.000
你能幫助我嗎?
我的SQL表中有兩列。一個是日期時間,另一個是時間 他們在格式, DateTime - 2012-04-05 16:58:56.000
和時間 - 21:30:00.00000
使用SQL查詢連接日期和時間變量
我需要編寫一個查詢將返回一列如 - 2012-04-05 21:30:00.000
你能幫助我嗎?
在SQL-Server 2008中,您可以添加值是這樣的:
select cast(dt as date) + cast(tm as datetime)
from yourtable
上述不再有效,這裏是一個將在SQL Server中工作的更新版本。這也可以edited to include additional precision:
SELECT dateadd(day, datediff(day,'19000101',dt), CAST(tm AS DATETIME))
from yourtable
試試這個::
Select CONCAT(DATE(column_dateTIME),column_Time) from my Table
返回'「日期」是無法識別的內置函數name.' –
@SashiKant的問題是有關SQL服務器,我已經重新標記它這樣已經。你的sql服務器功夫莎什怎麼樣? – Fluffeh
試試這個:
這應該在SQL SERVER工作
select CONVERT(varchar(10),dt_col,121)+' '+cast(t_col as varchar(20))
from your_table
對於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)
這爲我工作。
Select DateAdd(d, DateDiff(d, 0, Cast(OrderDate As datetime)), Cast(Delivery_Time as datetime)) From myTable
SELECT CAST(date_col AS DATETIME)+CAST(time_col AS DATETIME) FROM your_table
測試在SQL Server 2012中
工作正常,但具體情況。請查看下面的鏈接以獲取更多解釋http://stackoverflow.com/a/700647/2634848 – Avi
簡單而智能。謝謝。 –
這從2012年不起作用,這實際上改變了日期到一些新的日期 – Avi
@hsanivag考慮到這被標記爲SQL Server 2008的答案是特定於該版本。 SQL Fiddle鏈接確認它確實適用於該版本。 – Taryn