在MySQL / PHP脚本中使用php time()而不是now()

时间:2013-04-17 18:34:02

标签: php mysql

我有一个从PHP发送到MySQL的SQL查询,其中f.e。看起来像这样:

SELECT (now()-table.created) FROM table

现在我需要用PHP中的日期替换MySQL函数“now()”(因为它在查询中并不总是“我想要的”),但是当我传递PHP时,它不起作用( )“到MySQL。

我可以使用哪种PHP方法?

3 个答案:

答案 0 :(得分:2)

MySQL有一个名为UNIX_TIMESTAMPFROM_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>