1

我想将 dealend 设置为 Yesterday 而不是现在。有没有办法在这个命令行中做到这一点?

$query = mysqli_query($myConnection, "UPDATE bookdeals SET dealend='now()' WHERE id='$pid'") or die (mysqli_error($myConnection));
4

3 回答 3

5
... SET dealend = now() - INTERVAL 1 DAY

请注意,在'now()'您使用的情况下,您没有使用名为“now”的函数。您正在尝试将您的表格字段设置为一个字符串,其内容是字母n,ow.... 引号将事物变成字符串,而这些事物一旦被串起就失去了它们的特殊性。

于 2013-10-16T22:09:31.787 回答
0

now() 是一个 SQL 函数,由事务的开始时间决定。您可以通过调用更改它的值

SET TIMESTAMP = ...

但是,要使其正常工作,它需要与您的 UPDATE 查询位于同一事务中。我会建议做类似的事情:

UPDATE bookdeals SET dealend=DATE_SUB(NOW(), INTERVAL 1 DAYS) WHERE id='$pid'

这使用 MySQL SUB_DATE() 函数,它将从当前时间中减去一天。

于 2013-10-16T22:12:42.350 回答
0

您可以使用 MySQL DATE_SUB 函数

... dealend=DATE_SUB(now(),INTERVAL 1 DAY) ...

阅读此处了解有关 MySQL 日期函数的更多信息

于 2013-10-16T22:14:01.317 回答