0

我似乎找不到任何关于此的信息..

我需要将字符串转换为日期,以便正确导入 SQL DATE 字段。当我导入12/25/2012数据库时​​,它显示为0000-00-00.

这样做的正确方法是什么?

链接和参考表示赞赏。

4

3 回答 3

4

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;
于 2012-11-17T08:29:27.630 回答
2

正如@Ravi在他的回答中指出的那样,MySQL 接受格式为日期的日期YYYY-MM-DD。引自11.1.5。日期和时间类型1

尽管 MySQL 尝试以多种格式解释值,但日期部分必须始终按年-月-日顺序给出

为此,您可以使用2 个函数对其进行格式化:str_todate()

str_to_date('12/25/2012', '%m/%d/%Y);

SQL 小提琴演示

这样,这些输入字符串将作为日期对象(没有任何特定的日期格式)存储在您的数据库中。稍后,如果您想以特定格式输出这些日期,您可以使用3对其进行格式化。就像是:DATE_FORMAT

SELECT DATE_FORMAT(datefield, '%Y-%m-%d') FROM Test;
--2012-12-25

1、2、3:您要求的链接和参考。

于 2012-11-17T08:33:19.403 回答
0

使用类 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)
于 2012-11-17T08:35:00.917 回答