簡體   English   中英

如何將MySQL列從VARCHAR更改為日期時間並同時轉換數據?

[英]How can I change a MySQL column from VARCHAR to date time and convert the data at the same time?

我有一個帶有varchar列的大量數據,其中包含不尋常的日期時間格式。

如何同時轉換6000多個行中的數據,然后轉換列的類型?

我可以看到可以使用以下方式轉換類型:

ALTER TABLE <tblName> MODIFY <columnName> date time;

但是我看不到如何保留數據並同時對所有行執行此操作。

我當前的日期示例是:

Mon, 23 Sep 2013 07:01:00 GMT

根據@Mihai回答

UPDATE rns
SET rns.`rns_pub_date` = STR_TO_DATE(rns_pub_date,"%a, %d %b %Y")

您不會一次完成所有操作。 您一步一步地執行這些步驟。

  1. 添加新列。
  2. 從舊列更新新列。 這可能需要多個查詢,具體取決於varchar列中有多少種格式。
  3. 刪除舊列。
  4. 重命名新列。
UPDATE `table`
SET `column` = STR_TO_DATE(`column`,'%Y-%m-%d')

根據您的需求調整格式。

暫無
暫無

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

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