在mysql中根据时区的当前时间进行排序

时间:2018-11-08 10:17:13

标签: mysql sql

我的要求是根据当前时间以降序对测站结果进行排序。在电台表中,我有一个时区列,其中保存着这样的值

--------------+
| timezone     |
+--------------+
| Etc/GMT+12   |
| Etc/GMT+11   |
| Etc/GMT+10   |
| Etc/GMT+9    |

基于此列值,我需要生成每个站点的当前时间,并且需要基于当前时间的降序进行排序。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果要按时区排序(采用这种格式),请使用以下两种方法。

如果“ Etc”部分的长度固定,则:

order by length(timezone) desc, timezone desc

如果“ Etc”部分的长度可变:

order by replace(substring_index(timezone, '/', -1), 'GMT', 0) + 0 desc

您可以提取时区偏移并将其用于将本地时间更改为UTC。您没有提供“ Etc”部分的示例数据,因此我假设您知道如何执行此操作。