我正在尝试消除因时区问题而导致的错误,但我无法让convert_tz()正常工作。我怀疑这可能只是语法错误。
SUM(IF(duration IS NULL, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(convert_tz(t.start_time,'$instanceTimezone','$serverTimezone')), duration)) as `dailyTime`,
我正在尝试将持续时间设置为现在 - 运行查询时的t.start_time。
不幸的是,此数据库中的时间不是以标准化方式存储的,因此我必须从实例时区转换为服务器时间进行计算。服务器时间应始终为UTC,但为了以防万一,我将其保留在某些参数的变量中。
我确实加载了mysql时区,并将我的本地测试实例设置为使用UTC时间。
当像这样使用它时,我没有收到任何错误。但它总是在持续时间内返回0。
答案 0 :(得分:0)
这里的问题与我加载到mysql的时区表有关。
我从OSX加载它们,UTC的名称是Etc / UTC。更改我的本地mysql时区表以匹配UTC的服务器值修复了该问题。