我正在使用SQL 8.0并仍在学习中,我对此进行了一些很好的更改。现在我被日期卡住了,它们在导入中位于data_type
的TINYTEXT
中,而每个其他字段的主键分别为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
,我需要以下欧洲格式:DATE为%d/%m/%Y
。%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/Y H:i:s
格式)
UPDATE `table_test` SET `date_date` = STR_TO_DATE(`date_string`, '%d/%m/%Y %H:%i:%s');
只要
就会起作用。无论如何,您现在都将在表中拥有原始日期和转换日期,因此您可以检查数据看起来是否正常。TINYTEXT
列中的格式与STR_TO_DATE
函数中设置的格式匹配,该应该