[英]I can't change the data_type from TINYTEXT to DATE&/DATETIME
我正在使用 SQL 8.0 並且仍在學習,我對它做了一些很好的改變。 現在我被日期困住了,它們在導入的TINYTEXT
的data_type
中,其他每個字段都是主鍵的VARCHAR(60)
或INT
,我在這方面做得很好,但我堅持該data_type
日期。
我從第一天起就這樣做了:它適用於date
類型
SELECT *, DATE_FORMAT(column_name , "%d/%m/%Y %H:%i:%s")
FROM table_name;
(對於日期時間它不起作用。)
現在我試過這個:
INSERT INTO database_test.table_test.field_name(today)
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y') )
而不是%m-%d%y
,我需要這種歐洲格式: %d/%m/%Y
用於 DATE。 和%d/%m/%Y %H:%i:%s
為我的DATETIME
。 兩者都在TINYTEXT
。 (注意:對於未來的“DATE”數據類型,它們的日期是從 1899 年到 2099 年。)
我要做幾個假設……
STR_TO_DATE
是非標准的,因此可能不適用於其他數據庫服務器)TINYTEXT
字段中的日期以%d/%m/%Y %H:%i:%s
格式存儲 ...為了論證,我將說TINYTEXT
日期字段稱為date_string
。
我會做的是創建一個新的DATE
列,然后UPDATE
從價值它date_string
-使用STR_TO_DATE
功能(如你試過) -如果這就是成功刪除原始列,並且可能重命名新DATE
列。
添加真實日期列
我在這里稱它為date_date
。
ALTER TABLE `table_test` ADD `date_date` DATE NOT NULL AFTER `date_string`;
使用 TINYTEXT 字段中的值更新實際日期
(假設d/m/YH:i:s
格式)
UPDATE `table_test` SET `date_date` = STR_TO_DATE(`date_string`, '%d/%m/%Y %H:%i:%s');
只要您的TINYTEXT
列中的格式與STR_TO_DATE
函數中設置的格式相匹配,這應該有效。 無論如何,您現在將在表中擁有原始日期和轉換日期,因此您可以檢查數據是否正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.