我似乎找不到任何关于此的信息..
我需要将字符串转换为日期,以便正确导入 SQL DATE 字段。当我导入12/25/2012
数据库时,它显示为0000-00-00
.
这样做的正确方法是什么?
链接和参考表示赞赏。
MySQL 接受这种格式的日期,YYYY-MM-DD
要么将日期格式更改12/25/2012
为,2012-12-25
要么修改它们以匹配正确的格式。
编辑 如果你想继续使用你自己的格式试试这个
list($d,$m,$y) = explode("/", "12/25/2012"); //replace 12/25/2012 with your date
$hyphenDate = $y . '-' . $m . '-' . $d;
echo $hyphenDate;
正如@Ravi在他的回答中指出的那样,MySQL 接受格式为日期的日期YYYY-MM-DD
。引自11.1.5。日期和时间类型1:
尽管 MySQL 尝试以多种格式解释值,但日期部分必须始终按年-月-日顺序给出
为此,您可以使用2 个函数对其进行格式化:str_todate()
str_to_date('12/25/2012', '%m/%d/%Y);
这样,这些输入字符串将作为日期对象(没有任何特定的日期格式)存储在您的数据库中。稍后,如果您想以特定格式输出这些日期,您可以使用3对其进行格式化。就像是:DATE_FORMAT
SELECT DATE_FORMAT(datefield, '%Y-%m-%d') FROM Test;
--2012-12-25
1、2、3:您要求的链接和参考。
使用类 DateTime。例子:
$SomeDate = new DateTime();
echo $SomeDate->format( 'Y-m-d H:i:s' ); //Must be MySQL compatible (YYYY-MM-DD)
$ThisDate = new DateTime( date( 'Y-m-d H:i:s' ) );
echo $ThisDate->format( 'Y-m-d H:i:s' ); //Must be MySQL compatible (YYYY-MM-DD)