我在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) 什么的...
我在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) 什么的...
您可以使用 TIMESTAMPADD 函数执行此操作。
而不是这个:ADDDATE(DATE_OF_REG, INTERVAL 1 HOUR)
写这个:TIMESTAMPADD(HOUR, TIMEZONE, DATE_OF_REG)
我今天没有可用的 MySQL,但根据文档,间隔数可以是一个表达式。看看这是否有效:
ADDDATE(DATE_OF_REG, INTERVAL myTimeStamp HOUR)
如果这不起作用,试试这个,这或多或少是在 Oracle 中必须完成的:
ADDDATE(DATE_OF_REG, myTimeStamp * INTERVAL 1 HOUR)
SET @interval_count = YourTimezoneColumn;
SELECT <columns>
FROM table
WHERE TIME_TO_SEC(TIMEDIFF(NOW(), DATEDIFF(DATE_OF_REG, INTERVAL @interval_count HOUR)) / 3600 >= 24