如何將時間格式「10:02:22 PM」轉換爲SQL Server日期時間格式。在SQL Server中將Varchar轉換爲時間
我有一列這樣的數據。我從CSV文件導入了這一列,現在想將它轉換爲DateTime格式,以便我可以使用日期時間函數。
我希望能夠以正確的DateTime格式將此列插入到另一個表中。
如何將時間格式「10:02:22 PM」轉換爲SQL Server日期時間格式。在SQL Server中將Varchar轉換爲時間
我有一列這樣的數據。我從CSV文件導入了這一列,現在想將它轉換爲DateTime格式,以便我可以使用日期時間函數。
我希望能夠以正確的DateTime格式將此列插入到另一個表中。
您不需要轉換它。當您使用
INSERT otherTable
SELECT ....., timeAsVarchar, ...
FROM csvTable
如果所有的時間數據(前導空格或不)是從字符串解析的發生隱式轉換,查詢將做工精美。但是,如果有不能被轉換成時間差或空白數據的可能性,測試第一
INSERT otherTable
SELECT ....., CASE WHEN ISDATE(timeAsVarchar)=1 THEN timeAsVarchar END, ...
FROM csvTable
ELSE NULL
是隱含的,所以我離開了出來。
隱式投射轉換失敗,我得到錯誤,「轉換日期和/或時間從字符串轉換失敗。」 那麼我該怎麼做。我如何定義「其他表」中的時間列? ? – SarangArd 2013-04-18 06:25:20
使用此鏈接:http://msdn.microsoft.com/en-us/library/ms187928.aspx。
因爲只有時間轉換...
SELECT CONVERT(TIME, '10:00:22 PM');
提供了以下輸出...
22:00:22.000000
時間轉換日期和時間......
SELECT CONVERT(DATETIME, '10:00:22 PM');
給人的以下輸出...
1900-01-01 22:00:22.0000
注意:對於datetime
,您需要將特定日期作爲輸入,否則將其視爲默認世紀日期。
當時數據真的存在嗎? – RichardTheKiwi 2013-04-18 05:53:28
日期和時間值以任何格式存儲在數據塊中。它是客戶端應用程序格式的日期和時間值。 – 2013-04-18 05:59:55
@RichardTheKiwi:是的,AM/PM之前的空間已經存在。 – SarangArd 2013-04-18 06:27:14