簡體   English   中英

迄今為止的 SQL Server nvarchar

[英]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-dddate數據類型的明確格式。

但是,我強烈建議您修復您的設計。 nvarchar不是日期和時間值的合適數據類型,當然MAX長度值(表明日期的值可能超過 4,000 個字符的長度)是完全錯誤的。 您很可能應該在這里使用datetimeoffset (或者如果您的所有值都是 UTC,則可能只是使用datetime2 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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