我有一个要存储在Date MySQL列中的DateTime。我使用的是MySQLi和预准备语句。
绑定参数时,不能将date指定为类型,只能指定字符串和整数。
如何将DateTime转换为MySQL日期字符串表示形式?关于DateTime类的文档很少。
发布于 2008-12-28 20:20:50
我几乎关闭了它作为Convert from MySQL datetime to another format with PHP的副本,但我认为它实际上是相反的问题。这个问题问的是如何格式化从MySQL获取的日期,而您问的是如何格式化输入到查询中的日期。
选项1:
SELECT * FROM MyTable WHERE DateTimeCol = ?您可以将该值格式化为MySQL需要的YYYY-MM-DD HH:MM格式:
<?php $mysql_date = date('Y-m-d H:i:s', $timestamp); ?>然后将其作为字符串参数提交给查询。
选项2:
SELECT * FROM MyTable WHERE DateTimeCol = FROM_UNIXTIME(?)然后,您可以将时间戳值作为数字参数提交给查询。
选项3:
SELECT * FROM MyTable WHERE DateTimeCol = STR_TO_DATE(?, '%m/%d/%y')如果您为MySQL的STR_TO_DATE()函数指定了格式,那么您可以提交各种各样的日期/时间字符串表示。有关格式化代码,请参见DATE_FORMAT()函数。
发布于 2008-12-28 20:49:49
因为PHP5引入的DateTime类的文档很少,所以我不推荐使用它。我发现使用常规时间戳要容易得多!
但是,如果您仍然想使用DateTime对象,一个解决方案是在将这些对象存储到数据库中之前将它们转换为(unix)时间戳。从数据库读取信息后,将时间戳转换回DateTime对象。
要从时间戳创建DateTime-object,请使用带有时间戳作为参数的date_create()。要获得自Unix时代以来的秒数的对象表示,请使用date_format($object, 'U') (大写U)。
https://stackoverflow.com/questions/396610
复制相似问题