Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 日期格式-DD-MM-YYYY至YYYY-MM-DD_Php_Mysql_Date_Phpmyadmin - Fatal编程技术网

Php 日期格式-DD-MM-YYYY至YYYY-MM-DD

Php 日期格式-DD-MM-YYYY至YYYY-MM-DD,php,mysql,date,phpmyadmin,Php,Mysql,Date,Phpmyadmin,MySQL表有两列—startdate和enddate 其日期格式为:2016年1月22日 当我制作原型时,我使用了MediumText 现在,我想切换到日期格式。PHPMyAdmin中的默认日期格式为YYYY-MM-DD 如果我将列切换到Date,我的数据将转换为0000-00-00 使用PHP或MySQL,在返回到PHPMyAdmin以将列切换为日期格式之前,如何重新格式化数据?最简单、最可靠的方法是拆分日期,并以另一种方式重新排列: $parts = explode('-', $oldda

MySQL表有两列—startdate和enddate

其日期格式为:2016年1月22日

当我制作原型时,我使用了MediumText

现在,我想切换到日期格式。PHPMyAdmin中的默认日期格式为YYYY-MM-DD

如果我将列切换到Date,我的数据将转换为0000-00-00


使用PHP或MySQL,在返回到PHPMyAdmin以将列切换为日期格式之前,如何重新格式化数据?

最简单、最可靠的方法是拆分日期,并以另一种方式重新排列:

$parts = explode('-', $olddate);
$newdate = sprintf('%04d-%02d-%02d', $parts[2], $parts[1], $parts[0]);

在更改列数据的结构之前,可以使用“字符串到日期”函数更新列数据

UPDATE table SET dateColumn = STR_TO_DATE(dateColumn, '%d-%m-%Y');

它会将DD-MM-YYYY格式的日期转换为YYYY-MM-DD。之后,您可以将列的结构更改为
DATE

是否使用VARCHAR或DATE数据类型将
startdate
enddate
存储在DB中?不要使用文本格式以任意格式存储日期。。。。。首先在日期数据类型中存储日期;但是MySQL不能简单地让您将该列更改为日期,因为作为varchar的列的内容在原型设计时不是公认的日期格式-需要一些快速且肮脏的内容。现在,我需要优化应用程序。也许可以先将现有mediumtext中的所有数据更新为YYYY-MM-DD格式,然后再将数据类型更改为第二步更好地插入另一个正确键入的字段,然后删除varchar字段。