簡體   English   中英

在數據庫級別的mysql中將varchar列轉換為日期

[英]Convert varchar column to date in mysql at database level

我有一列date1varchar類型,我希望此列為date類型。 我嘗試更改字段,但所有日期都轉換為0000-00-00 格式為dd-mm-yyyy但格式為varchar

如何使用sql查詢或類似的但在數據庫級別轉換相同的日期格式但轉換為日期格式?

UPDATE `table`
SET `column` = str_to_date( `column`, '%d-%m-%Y' );

有關STR_TO_DATE函數的更多信息。


由於您的列名是date1 ,可以替換columndate1在上面的語法,代碼應為:

UPDATE `table`
SET `date1` = str_to_date( `date1`, '%d-%m-%Y' );

這里的其他答案是有風險的,因為如果它們出錯,您將丟失您的數據。 一種更安全的方法是在數據庫上以DATE(或DATETIME,如果您也需要時間)格式創建一個新字段,然后運行類似

UPDATE `table` SET `my_new_date_field` = STR_TO_DATE( `my_old_data_field`, '%d/%m/%Y');

這樣,如果%d/%m/%Y位錯誤,則不會丟失數據。

滿意后,您可以刪除舊的數據字段並重命名新的數據字段。

使用MySQL的STR_TO_DATE函數

首先,您需要以日期格式更新值。

UPDATE `tbl` SET `date1` = STR_TO_DATE(`date1`, '%d-%m-%Y') WHERE 1=1

然后將字段轉換為日期。

最重要的是,請記住在此之后以Ymd格式插入日期。

暫無
暫無

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

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