Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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 如何在执行加载数据填充时将VARCHAR date转换为标准MYSQL日期格式_Php_Mysql_Varchar - Fatal编程技术网

Php 如何在执行加载数据填充时将VARCHAR date转换为标准MYSQL日期格式

Php 如何在执行加载数据填充时将VARCHAR date转换为标准MYSQL日期格式,php,mysql,varchar,Php,Mysql,Varchar,在我的表中,有一整列包含varchar date,下面是它的样子:2/1/2020 02:30:00 date是m/d/yyyy我希望它转换为标准的MySQL日期格式yyyy-mm-dd,或者如果可能的话,可以转换为自定义的日期格式版本。如果可能的话,我还想取消时间02:30:00。是否有任何命令可以在终端上运行,以将整个列或导入到数据库中的文件格式从.xls转换为.sql文件格式。另一件事是,如果在MySQL中不可能,那么在PHP中可能有一种方法来转换或操作所述数据。多谢各位 另外,也许还有一

在我的表中,有一整列包含varchar date,下面是它的样子:2/1/2020 02:30:00 date是m/d/yyyy我希望它转换为标准的MySQL日期格式yyyy-mm-dd,或者如果可能的话,可以转换为自定义的日期格式版本。如果可能的话,我还想取消时间02:30:00。是否有任何命令可以在终端上运行,以将整个列或导入到数据库中的文件格式从.xls转换为.sql文件格式。另一件事是,如果在MySQL中不可能,那么在PHP中可能有一种方法来转换或操作所述数据。多谢各位

另外,也许还有一种方法可以将时间转换为标准的MySQL时间格式

我不知道如何改变我的问题,这里有一些额外的数据

这是显示警告的结果,我不确定这是怎么回事,我做错了什么,但在给定的示例中,它工作正常。我会继续尝试,但我很满意我得到了两个非常好的建议和方法,一个是mysql端,另一个是php端。谢谢。

使用strotime和date函数将此日期转换为MySQL日期格式:

$db_date = "2/1/2020  02:30:00";
$new_date = date( "Y-m-d" , strtotime($db_date) );
说明:

strotime$db_date这将字符串日期转换为unix时间戳

日期Y-m-d。。。。这将unix时间戳转换为YYYY-MM-DD Y-m-d格式


演示:

您可以直接在MySQL中执行此转换,使用将字符串转换为日期时间值,然后使用和提取日期和时间部分:

SELECT DATE(STR_TO_DATE('2/1/2020 02:30:00', '%c/%e/%Y')) AS date,
       TIME(STR_TO_DATE('2/1/2020 02:30:00', '%c/%e/%Y %H:%i:%s')) AS time
输出:

date        time
2020-02-01  02:30:00

也就是说,将传入字符串存储到@-变量中,然后在LOAD DATA语句中转换它。

我不确定如何在整个列中执行此操作。@aaa28,其中我放置了“2/1/2020 02:30:00”,只需将其替换为列名称即可。输出均为空。我不确定发生了什么。@aaa28我已经更新了演示,以显示从列中读取的值,这些值与您在编辑中显示的值类似:@aaa28我注意到,当您运行查询时,出现了一些警告;在再次运行查询后,是否可以显示警告以显示它们是什么?我尝试了这个,这是数据2/1/2020 06:00:00,输出是01/01/1970。它是从mysql数据库中检索出来的,由php显示在日期类型的输入中。并附上你的约会数据的截图?另外,请包括您根据Nick的建议测试的结果。如果该查询返回空值或不返回空值,请尝试运行该查询:选择str_to_date您的_列“%m/%d/%Y”
LOAD DATA INFILE ...
    (col1, col2, @str)
    SET col3 = STR_TO_DATE(@str, '%c/%e/%Y %H:%i:%s');