如何在mysql查询中正确使用convert_tz()

时间:2015-11-03 22:32:29

标签: mysql

我正在尝试消除因时区问题而导致的错误,但我无法让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。

1 个答案:

答案 0 :(得分:0)

这里的问题与我加载到mysql的时区表有关。

我从OSX加载它们,UTC的名称是Etc / UTC。更改我的本地mysql时区表以匹配UTC的服务器值修复了该问题。