一位客戶給了我一個包含 VARCHAR(150) 中所有欄位的資料庫。我有一個格式為 dd/mm/yy 的日期欄位,我愿意將其轉換為 DATE 型別。我發現您可以使用 CONVERT 函式來更改日期的型別,如下所示:
select convert(varchar, getdate(), 3)
這使:
30/12/06
但它僅在該欄位被識別為 DATE 時才有效。
我的要求是:
SELECT TOP(1000) CAST("Date" AS date) FROM "1_MVENTE"
我有這個錯誤資訊:
從字串轉換日期和/或時間時轉換失敗。
當一天超過 12 時它會失敗,因為 T-SQL 是預期的美國日期格式。例如 2021 年 12 月 12 日有效,但 2021 年 12 月 13 日無效。
我不知道如何向 T-SQL 解釋我的輸入欄位是 VARCHAR 但必須讀取為日期 dd/mm/yy 才能進行轉換。
uj5u.com熱心網友回復:
使用CONVERT樣式代碼。當值無法轉換時,也切換到TRY_CONVERTwhich 將回傳NULL,因為很可能您的資料質量很差,因此日期無效(如'29/02/21','03/17/22'或'33/12/20')。風格3是dd/MM/yy
SELECT TRY_CONVERT(date,[date],3)
FROM dbo.[1_MVENTE];
當然,你真正應該做的是修復你的設計。根據定義date,實際上存盤 a 的列不是a 。不是“一刀切”的資料型別;為您的資料使用正確的資料型別。varchardatevarchar
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408759.html
標籤:
