簡體   English   中英

從varchar轉換為SQL Server中的日期

[英]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()函數教程

閱讀TRY_CONVERT MSDN文章

您需要在格式化時指定日期時間的格式。 表格中的日期目前采用美國格式,因此您應該在轉換函數中傳遞第三個參數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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM