是否可以像这样使用date_sub?
$dt = date("Y-m-d h:i:s");
$query = "INSERT INTO `table` (`date`) VALUES ('DATE_SUB('$dt', INTERVAL 15 DAY)')";
$result = MYSQL_QUERY($query);
由于
答案 0 :(得分:1)
我建议你不要将日历计算留给数据库。请改用DateTime class并更新timezonedb扩展程序。这实际上就是PHP正确的事情。
另见Derick博客上的this post。
答案 1 :(得分:1)
这是错误的'DATE_SUB('$dt', INTERVAL 15 DAY)'
,这是一个字符串。
现在,您的日期格式与MySQL NOW()
函数使用的格式相同。
SELECT NOW();
---------------------
|now() |
---------------------
|2010-05-15 20:42:35|
---------------------
由于我在最近的一个项目中使用时没有遇到任何问题DATE_SUB(NOW(), INTERVAL 6 MONTH);
,我认为没有任何理由不能使用它。
SELECT DATE_SUB( NOW( ) , INTERVAL 6 MONTH );
-----------------------------------
|DATE_SUB(NOW(), INTERVAL 6 MONTH)|
-----------------------------------
|2009-11-15 20:49:28 |
-----------------------------------
答案 2 :(得分:0)
您可以删除DATE_SUB(...)
周围的引号,在数据库中使用它。
但是你应该考虑使用带有time()的unix时间戳,并使用date()函数将其重新转换为日期格式,如下所示:
$dt = date("Y-m-d h:i:s", time() - 15*24*3600); //today - 15 days
适用于PHP 4和PHP 5.