我在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)或其他......
答案 0 :(得分: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
答案 1 :(得分:0)
您可以使用TIMESTAMPADD函数执行此操作。
而不是:ADDDATE(DATE_OF_REG, INTERVAL 1 HOUR)
写下:TIMESTAMPADD(HOUR, TIMEZONE, DATE_OF_REG)
答案 2 :(得分:0)
我今天没有MySQL,但根据docs,区间数可以是表达式。看看是否有效:
ADDDATE(DATE_OF_REG, INTERVAL myTimeStamp HOUR)
如果这不起作用,试试这个,这或多或少是如何在Oracle中完成的:
ADDDATE(DATE_OF_REG, myTimeStamp * INTERVAL 1 HOUR)