[英]SQL Server nvarchar to date
我正在嘗試編寫查詢並將nvarchar
轉換為date
。 我已經嘗試了以下但不斷收到錯誤:
從字符串轉換日期和/或時間時轉換失敗。
cast(columnName as DATE) as castDate
convert(Date, columnName, 23) as convertDate
(nvarchar(max),null)
2021-12-30 02:22:24 UTC
期望的輸出:
2021-12-30
日期和時間數據類型不支持時區的 3 個字母縮寫(例如此處'UTC'
)。 由於您只需要日期,那么我建議您只需取最左邊的 10 個字符,然后CONVERT
/ CAST
值。 我在這里使用TRY_CONVERT
,因為由於決定使用nvarchar
作為數據類型(甚至沒有觸及它的長度為MAX
的事實),您可能會有錯誤的日期:
TRY_CONVERT(date,LEFT(YourColumn,10))
幸運的是, yyyy-MM-dd
是date
數據類型的明確格式。
但是,我強烈建議您修復您的設計。 nvarchar
不是日期和時間值的合適數據類型,當然MAX
長度值(表明日期的值可能超過 4,000 個字符的長度)是完全錯誤的。 您很可能應該在這里使用datetimeoffset
(或者如果您的所有值都是 UTC,則可能只是使用datetime2
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.