我无法将data_type从TINYTEXT更改为DATE&/ DATETIME

问题描述 投票:0回答:1

我正在使用SQL 8.0并仍在学习中,我对此进行了一些很好的更改。现在我被日期卡住了,它们在导入中位于data_typeTINYTEXT中,而每个其他字段的主键分别为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年。)

php sql date datetime datetime-format
1个回答
0
投票

我要作几个假设...

  1. SQL 8.0表示MySQL 8.0STR_TO_DATE是非标准的,因此可能无法与其他数据库服务器一起使用]
  2. TINYTEXT字段中的日期以%d/%m/%Y %H:%i:%s格式存储>
  3. ...为了便于讨论,我将把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函数中设置的格式匹配,该应该

就会起作用。无论如何,您现在都将在表中拥有原始日期和转换日期,因此您可以检查数据看起来是否正常。
© www.soinside.com 2019 - 2024. All rights reserved.