Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我无法将数据类型从TINYTEXT更改为DATE&/DATETIME_Php_Sql_Date_Datetime_Datetime Format - Fatal编程技术网

Php 我无法将数据类型从TINYTEXT更改为DATE&/DATETIME

Php 我无法将数据类型从TINYTEXT更改为DATE&/DATETIME,php,sql,date,datetime,datetime-format,Php,Sql,Date,Datetime,Datetime Format,我正在使用SQL 8.0并仍在学习,我对它做了一些很好的修改。现在我被日期卡住了,它们是来自导入的TINYTEXT的数据类型,其他每个字段的主键都是VARCHAR60或INT,我做得很好,但是我被日期的数据类型卡住了 我从第一天起就这么做了:它适用于日期类型 暂时 它不起作用 现在我试着这样做: INSERT INTO database_test.table_test.field_name(today) VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y') )

我正在使用SQL 8.0并仍在学习,我对它做了一些很好的修改。现在我被日期卡住了,它们是来自导入的TINYTEXT的数据类型,其他每个字段的主键都是VARCHAR60或INT,我做得很好,但是我被日期的数据类型卡住了

我从第一天起就这么做了:它适用于日期类型

暂时 它不起作用

现在我试着这样做:

INSERT INTO database_test.table_test.field_name(today) 
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y') ) 
我需要此欧洲格式%d/%m/%y作为日期,而不是%m-%d%y。 和%d/%m/%Y%H:%i:%s作为我的日期时间。两者都在TINYTEXT中。
注:对于未来的日期数据类型,它们的日期从1899年到2099年。

我将做一些假设

SQL 8.0是指MySQL 8.0 STR_TO_DATE是非标准的,因此可能无法与其他数据库服务器一起使用 TINYTEXT字段中的日期存储格式为%d/%m/%Y%H:%i:%s 。。。为了便于论证,我要说TINYTEXT日期字段被称为日期字符串

我要做的是创建一个新的日期列,然后使用值from DATE_string更新它-像您尝试的那样使用STR_TO_DATE函数-如果成功,请删除原始列,并可能重命名新的日期列

添加“真实日期”列

我在这里称之为约会

使用TINYTEXT字段中的值更新实际日期

假设d/m/Y H:i:s格式


只要TINYTEXT列中的格式与STR_TO_DATE函数中设置的格式相匹配,这种方法就可以工作。不管怎样,现在表中都会有原始日期和转换日期,因此,您可以检查数据是否正常。

MySQL使用的ANSI SQL标准日期格式是Y-m-d-如果您将日期字符串转换为该格式,则应该能够将字段类型从TINYTEXT转换为date-然后您可以使用本机日期操纵函数,如date_format我是否应该使用SELECT。。。从开始执行此操作,或者最好执行ALTER TABLE以使用DATE_格式?一旦您将现有文本转换为有效的日期格式,您将希望更改TABLE yes-我认为这会起作用,但首先备份表格,如果有什么东西出了问题,你可能会在修改表格时丢失所有的日期。我正在制作一个alernate表格进行测试。我不会改变我的工作。我要试试这几行。-我确实试着改变格式日期,所以我试着在互联网上搜索命令。我找到了getdate函数,即使这个函数也不起作用。-它适用于“UPDATE clien SET date_date=STR_TO_DATEdate_string”,%d/%m/%Y%H:%I:%s';”它给了我一个警告,但争吵发生了变化。我试着将测试表中的真实数据放到新字段中。我尝试了以下几行:从表中选择日期\字符串更新日期\日期;或者甚至将date_date作为date_主要插入到date_字符串值uuuu/uuuu/uuuuuu/uuuu/uuuu/uuuuuu等中。。。它不是真正的数据,我把它作为一个列表,就像中的术语一样。-我没有找到将所有测试行放入新字段日期的好请求。对不起,我错过了这么简单的方式。我还在学习。@BenoîtCode抱歉-我在努力学习你的英语。。。你是说你的TINYTEXT字段中有一些日期格式不正确,现在你已经更正了,并且它正在工作。。。?你需要进一步的帮助吗?或者你现在还好吗?
INSERT INTO database_test.table_test.field_name(today) 
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y') ) 
ALTER TABLE `table_test` ADD `date_date` DATE NOT NULL AFTER `date_string`;
UPDATE `table_test` SET `date_date` = STR_TO_DATE(`date_string`, '%d/%m/%Y %H:%i:%s');