微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLHUE:有什么方法可以将 24 小时时间转换为 12 小时 AM/PM 格式,并带有小时桶

如何解决SQLHUE:有什么方法可以将 24 小时时间转换为 12 小时 AM/PM 格式,并带有小时桶

我有A,其中包含存储为时间戳数据类型的列 time

表 A:包含 24 小时格式的 HH:MM:SS 时间列。

Sample data below:

time
12:32:45
16:09:04
09:02:16
18:34:33
08:59:30

Now I want to create a bucket based on hours and adding AM/PM.

eg: 
time between 00:00:00 - 00:59:00 = 12 AM,01:00:00 - 01:59:00 = 01 AM,14:00:00 - 14:59:00 = 02 PM and so on.

Desired Output :

time     new_time
12:32:45  12 PM
16:09:04  04 PM
09:02:16  09 AM
18:34:33  06 PM
08:59:30  08 AM

解决方法

请使用以下代码。对于您的查询,将 now() 替换为 time

SELECT now(),lpad(CONCAT ( 
CAST (extract(hour from now()) + CASE WHEN extract(hour from now()) >12 THEN -12 
WHEN extract(hour from now())=0 THEN 12 
ELSE 0  END AS string),CASE WHEN extract(hour from now())  >=12 THEN ' PM' ELSE ' AM' END),5,'0') as new_time 

说明—— 首先我检查小时是否> 12。如果是,减去12得到小时。
然后根据小时设置上午/下午。
lpad 用于确保您以 01 AM 格式获取数据。 enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。