我有一個包含員工時間條目的大型資料集。當前日期格式為MM/dd/yyyy。但是,我需要將所有日期轉換為yyyy-MM-dd 格式。
我嘗試了以下方法:
更新 human_resources.timekeeping Set Actual_Date = str_to_date(Actual_Date,'%d-%m-%Y');
收到錯誤訊息錯誤代碼:1411。不正確的日期時間值:函式 str_to_date 的“”。
我的 SQL 版本是5.7.18-log。
我嘗試使用SELECT @@sql_mode 查看 SQL 模式;而且我沒有更換發動機。
我試圖檢索如下所示的值,它作業正常。 將 varchar mm/dd/yy 轉換為日期格式 yyyy-mm-dd
但是,更新資料將不起作用。我需要更新實際記錄,而不是插入新記錄。
希望有人可以幫助我解決這個問題。先感謝您!
uj5u.com熱心網友回復:
你的分隔符是/不是 -
%d-%m-%Y >> %d/%m/%Y
uj5u.com熱心網友回復:
如果您已經考慮到以下事項,我深表歉意,但我認為它們值得一提。
鑒于您說這是一個“大型資料集”,我假設這是一個當前正在使用的表。現有應用程式是否依賴于Actual_Date該字串格式?它是否依賴于表中固定數量的列?當涉及到更改底層資料結構時,一些撰寫不佳的應用程式可能會非常脆弱。
您可能需要考慮創建當前表的副本,修改副本的結構,并用與原始表具有相同列和格式的視圖替換原始表。通過這種方式,您可以獲得改進的資料,但降低現有應用程式的風險。
在問題的標題和第一行中,您宣告當前格式是 MM/dd/yyyy
Update human_resources.timekeeping Set Actual_Date = str_to_date(Actual_Date,'%m/%d/%Y');
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/420917.html
標籤:
