1

我在mysql中有这一行:

SELECT <columns>
FROM table
WHERE TIME_TO_SEC(TIMEDIFF(NOW(), ADDDATE(DATE_OF_REG, INTERVAL 1 HOUR))) / 3600 >= 24

我还有一个 TIMEZONE 列,它将与服务器的时间差存储为一个数字。如何在 ADDDATE 函数中以某种方式添加此数字?例如 ADDDATE(DATE_OF_REG, INTERVAL, TIMEZONE) 什么的...

4

3 回答 3

0

您可以使用 TIMESTAMPADD 函数执行此操作。

而不是这个:ADDDATE(DATE_OF_REG, INTERVAL 1 HOUR)

写这个:TIMESTAMPADD(HOUR, TIMEZONE, DATE_OF_REG)

于 2013-08-02T15:27:43.643 回答
0

我今天没有可用的 MySQL,但根据文档,间隔数可以是一个表达式。看看这是否有效:

ADDDATE(DATE_OF_REG, INTERVAL myTimeStamp HOUR)

如果这不起作用,试试这个,这或多或少是在 Oracle 中必须完成的:

ADDDATE(DATE_OF_REG, myTimeStamp * INTERVAL 1 HOUR)
于 2013-08-02T15:27:52.153 回答
0
SET @interval_count = YourTimezoneColumn;
SELECT <columns>
FROM table
WHERE TIME_TO_SEC(TIMEDIFF(NOW(), DATEDIFF(DATE_OF_REG, INTERVAL @interval_count HOUR)) / 3600 >= 24
于 2013-08-02T15:25:25.490 回答