如果我想将结果插入到MySQL datetime
类型的列中,那么在PHP中传递给date()
函数的正确格式是什么?
我一直在尝试date('Y-M-D G:i:s')
,但每次都会插入"0000-00-00 00:00:00“。
发布于 2010-02-07 08:29:57
问题是您使用的是'M'
和'D'
,这是一种文本表示形式,MySQL需要2010-02-06 19:30:13
格式的数字表示形式
Try:date('Y-m-d H:i:s')
,它使用数字等效项。
编辑:将G
切换到H
,虽然它可能没有影响,但您可能希望使用24小时格式和前导0。
发布于 2010-02-07 08:29:59
来自php的date()
manual page的评论
<?php $mysqltime = date ('Y-m-d H:i:s', $phptime); ?>
您的'Y‘是正确的--这是一个完整的年份,但是'M’是一个三个字符的月份,而'm‘是一个两位数的月份。与“D”而不是“d”的问题相同。“g”是一个1位或2位数字的小时,其中“H”在需要时总是有一个前导0。
发布于 2010-02-07 08:56:46
这里有一种替代的解决方案:如果您将PHP中的日期作为时间戳,那么绕过PHP处理它,让DB通过使用FROM_UNIXTIME
函数来处理它。
mysql> insert into a_table values(FROM_UNIXTIME(1231634282));
Query OK, 1 row affected (0.00 sec)
mysql> select * from a_table;
+---------------------+
| a_date |
+---------------------+
| 2009-01-10 18:38:02 |
+---------------------+
https://stackoverflow.com/questions/2215354
复制相似问题