[英]Convert from varchar into date in SQL Server
這看起來很容易解決,但我似乎無法弄清楚為什么這對我不起作用。 我有一個列有這樣的數據:
DateField
----------
12/16/2016
11/06/2016
我想要做的就是從varchar
轉換為date
列,但我收到此錯誤:
從字符串轉換日期和/或時間時轉換失敗。
這是我的簡單查詢:
select convert (date, DateField) as convertedField
from myTable
你給出的兩個例子沒有錯。 您的表中有一些不良日期無法轉換為日期。
對於錯誤的日期使用TRY_CONVERT
函數它將返回NULL
select TRY_Convert(date,DateField)
From myTable
您應始終以DATE/DATETIME
數據類型存儲日期。
如果要查看無法轉換為日期的記錄
select DateField
From myTable
Where TRY_Convert(date,DateField) IS NULL
如果使用特定日期格式(如mm/dd/yyyy
您可以在Convert()
函數中指定它,如下所示
CONVERT(DATETIME,DATAFIELD,101)
如果它仍然無法正常工作,請使用TRY_CONVERT()
來獲取拋出此異常的行:
SELECT *
FROM TBL
WHERE TRY_CONVERT(DATETIME, DATAFIELD, 101) IS NULL
這將返回無法轉換的行
如果轉換失敗, TRY_CONVERT()
將返回NULL
在此處閱讀有關DateTime格式的更多信息: SQL Server CONVERT()函數教程
您需要在格式化時指定日期時間的格式。 表格中的日期目前采用美國格式,因此您應該在轉換函數中傳遞第三個參數101。
SELECT CONVERT(date,[DateField],101) FROM myTable;
在這里工作小提琴http://rextester.com/NYKR49788
有關日期時間樣式的更多信息,請訪問: https : //msdn.microsoft.com/en-us/library/ms187928.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.