首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对带有负值的STR_TO_DATE的时区表排序

问对带有负值的STR_TO_DATE的时区表排序
EN

Stack Overflow用户
提问于 2019-12-02 18:39:02
回答 1查看 48关注 0票数 0

我在mysql中有一个时区表,其中包含三个varchars列: php时区代码、每个时区的GMT偏移数据和如下显示名称:

代码语言:javascript
复制
Africa/Abidjan, 0:00, (GMT) Monrovia, Reykjavik
Africa/Addis_Ababa, +3:00, (GMT+3:00) Nairobi
Africa/Algiers, +1:00, (GMT+1:00) West Central Africa

我正在尝试使用ORDER BY STR_TO_DATE(`data_gmt`, '%l:%i')对此表进行排序,但我遇到了负偏移量问题。

在选择偏移量字符串的日期值时,mysql向我显示负值和0:00值的空值。

代码语言:javascript
复制
data_gmt, STR_TO_DATE(`data_gmt`, '%l:%i')
---------------
0:00   NULL
+3:00  03:00:00
+1:00  01:00:00
+2:00  02:00:00
-10:00 NULL
-9:00  NULL

有没有办法从负的时间偏移量-> 0 ->正的时间偏移量来排序这个时区表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 20:24:57

您可以使用SUBSTRING_INDEX提取:左侧的小时部分,然后将其CAST为带符号整数进行排序:

代码语言:javascript
复制
SELECT *
FROM data
ORDER BY CAST(SUBSTRING_INDEX(data_gmt, ':', 1) AS SIGNED)

Demo on dbfiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59137175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档