Php 如何在执行加载数据填充时将VARCHAR date转换为标准MYSQL日期格式
在我的表中,有一整列包含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日期格式: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中可能有一种方法来转换或操作所述数据。多谢各位 另外,也许还有一
$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');