【发布时间】:2014-09-03 10:36:29
【问题描述】:
我有时间以 hh:mm aa 格式例如:01:30 AM。
在创建表时,我将数据类型指定为 TIME。但是没有办法设置它的格式。默认为 HH:MM:SS 格式。因此,在输入 AM/PM 值时,它不会添加到数据库中。
有没有办法使用 TIME 数据类型列以我需要的格式存储我的时间,以便更轻松地进行排序。
我还尝试将时间保存为 TEXT 数据类型。我通过替换 AM/PM 来订购它并进行字符串排序。其中的问题是 12:30 PM 将无法正确排序。
例如:12.30 PM、12.30 AM、02.30 PM 将在 12.30 AM、02.30 PM、12.30 PM 订购
如何订购此列,我可以为此提供什么数据类型?
【问题讨论】:
-
这就是为什么 24 小时格式更好:
02:30 PM = 14:00,在 12:30 之后出现。 12:30 AM 真的是00:30。 -
这可能是一个技巧,首先将数据保存在 TIME TYPE 中,但在仅保存 01:30 AM 之前,只需解析 01:30 并保存在 TIME TYPE 和下午 2:30表示根据 24 HRS TIME 它 14:30 将保存它。然后当您检索 SELECT * FROM data ORDER BY to_Time(Time) 并再次重新解析时,您需要 所以最好使用 24 小时格式
-
参考这个解决方案:- stackoverflow.com/a/45240886/4024250