我有一个从PHP发送到MySQL的SQL查询,其中f.e。看起来像这样:
SELECT (now()-table.created) FROM table
现在我需要用PHP中的日期替换MySQL函数“now()”(因为它在查询中并不总是“我想要的”),但是当我传递PHP时,它不起作用( )“到MySQL。
我可以使用哪种PHP方法?
答案 0 :(得分:2)
MySQL有一个名为UNIX_TIMESTAMP
和FROM_UNIXTIME
的函数,
-- NOW() => time()
SELECT UNIX_TIMESTAMP(NOW())
-- time() => DATETIME()
SELECT FROM_UNIXTIME(1366223878)
答案 1 :(得分:1)
嗯,这取决于table.created
存储的格式。
如果它是一个UNIXTIME值(即与PHP的时间格式相同),那么您需要做的就是以正确的方式插入它:
<?php
$dbobj->query('SELECT ('.time().'-table.created) FROM table');
?>
...如果table.created
是日期时间或类似值,则您需要创建适当的日期格式:
<?php
$dbobj->query("SELECT ('".date('Y-m-d H:i:s', time())."'-table.created) FROM table");
?>
答案 2 :(得分:0)
使用较新的DateTine对象;
$date = new DateTime('NOW');
$query = "SELECT * FROM table where date > ".$date->format('Y-m-d H:i:s')
DateTime对象中的NOW
将根据您的喜好准确,因为它存储在您似乎想要它的那一刻,与在MySQL中完成时不同,可能是(微/毫秒)秒。 / p>