我想這nvarchar列於日期時間格式轉換:找不到SQL Server中的日期樣式格式2012
"29/12/14 07:46:20 PM"
這種風格是好的,但一直沒有時間:
SELECT CONVERT(datetime, nvarcharDateColumn, 3) AS [DD/MM/YY]
如何我可以轉換它並保留所有的日期部分(日期+時間)?
我想這nvarchar列於日期時間格式轉換:找不到SQL Server中的日期樣式格式2012
"29/12/14 07:46:20 PM"
這種風格是好的,但一直沒有時間:
SELECT CONVERT(datetime, nvarcharDateColumn, 3) AS [DD/MM/YY]
如何我可以轉換它並保留所有的日期部分(日期+時間)?
SQL Server中的日期時間數據類型沒有「格式」。它本地是一個8字節的二進制值。到nvarchar的字符串轉換爲datetime,請使用轉換與nvarchar列作爲第二個參數:
SELECT CONVERT(datetime, nvarcharColumnWithDateAndTime, 3) AS NativeDateTime
FROM dbo.YourTable;
注意此查詢中顯示的日期時間格式是由您使用的應用程序,而不是SQL Server數據庫來確定。另外,考慮將表格數據類型更改爲datetime以避免數據完整性問題; nvarchar將允許存儲無效日期。
他希望轉換從'DATETIME'轉換爲'VARCHAR',而不是相反。 – 2015-02-07 13:56:45
@noryap,最近的評論說它是一個從csv導入的nvarchar列。 – 2015-02-07 13:58:47
@ roryap問題中的第一句話完全相反。 – DavidG 2015-02-07 14:01:35
此一有時間,但包括毫秒......它可能是太多了:)
SELECT CONVERT(VARCHAR(30), GETDATE(), 131)
這輸出'18/04/1436 8:55: 53:903AM'。 – 2015-02-07 13:56:12
哦,廢話。正在尋找正確的格式,但完全忘記了實際的日期(facepalm) – 2015-02-07 13:58:39
這是我想到一個艱鉅的任務。這是最好的,我可以拿出:
DECLARE @MyDate DATETIME
SET @MyDate = GETDATE()
SELECT CONVERT(VARCHAR(50), @MyDate, 3) + ' ' + CONVERT(VARCHAR(50), CONVERT(TIME, @MyDate), 100)
你正在做的相反。 'CONVERT(VARCHAR(8),GETDATE(),3)'將DATETIME轉換爲'VARCHAR(8)'。你在第一行說你想將'NVARCHAR'轉換成'DATETIME'。這是什麼? – 2015-02-07 13:36:43
爲什麼要在SQL中格式化日期?在你的UI層做到這一點。 – DavidG 2015-02-07 13:38:49
@ roryap問題是我無法找到合適的日期樣式。我知道你在說什麼。這只是一個例子。 – Ariox66 2015-02-07 13:48:01