2016-11-30 65 views
0

我有一個日期存儲爲存儲爲VARCHAR(5)DATETIME2(7)和時間。轉換或鑄造DATETIME2和varchar成日期時間

例如

日期= 2016年11月30日00:00:00.000000(DATETIME2)

時間= 09:00(VARCHAR)

輸出應爲2016年11月30日09: 00:00.000000(日期時間)。

如何將它們轉換或轉換爲日期時間。我嘗試了幾種方法,但都沒有成功。

非常感謝您的幫助。

+0

您嘗試過哪些方法無效?你能否提供一些樣本數據和預期的輸出供人們使用。 –

+0

您是否可以像在數據庫表中那樣發佈樣例數據? – Hackerman

+0

謝謝,但我想通了。 convert(datetime,convert(char(8),DATE,112)+''+ convert(char(8),TIME,108)) – Mally

回答

0

,因爲這也許簡單嗎?

DECLARE @d DATETIME2(7)='2016-11-30 00:00:00.000000' 
DECLARE @t VARCHAR(5)='09:00'; 

SELECT CAST(CAST(@d AS DATETIME) + CAST(@t+':00' AS DATETIME) AS datetime2(7)) 

你的時間需要只是:00吧,比你可以施放這DATETIME。可以添加兩個DATETIME類型的值。

整個表達式可以重新轉換爲DATETIME2

0

怎麼是這樣的:

DECLARE @MYDATE DATETIME2; 
DECLARE @MYTIME VARCHAR(5); 

SET @MYDATE = '2016-11-30'; -- this is equal to 2016-11-30 00:00:00.000000 
SET @MYTIME = '09:00'; 
-- for datetime2 
SELECT CAST(CAST(LEFT(@MYDATE,10) AS VARCHAR) + ' ' + @MYTIME + ':00.000000' AS DATETIME2) 
-- for datetime 
SELECT CONVERT(DATETIME,CAST(LEFT(@MYDATE,10) AS VARCHAR) + ' ' + @MYTIME + ':00') -- for datetime