0

我有一个从 PHP 发送到 MySQL 的 SQL 查询,它看起来像这样:

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

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

我可以使用什么 PHP 方法?

4

3 回答 3

2

MySQL 有一个名为UNIX_TIMESTAMPand的函数FROM_UNIXTIME

-- NOW() => time()
SELECT UNIX_TIMESTAMP(NOW())
-- time() => DATETIME()
SELECT FROM_UNIXTIME(1366223878)
于 2013-04-17T18:38:59.323 回答
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");
?>
于 2013-04-17T18:39:03.227 回答
0

使用较新的 DateTine 对象;

$date = new DateTime('NOW');

$query = "SELECT * FROM table where date > ".$date->format('Y-m-d H:i:s')

DateTime 对象中的NOW将根据您的喜好准确,因为它存储在您似乎想要它的那一刻,与在 MySQL 中完成时不同,可能是(微/毫秒)秒后。

于 2013-04-17T18:41:56.717 回答