我正在尝试使用A.M / P.M指标以12小时格式从时间戳列(oracle)中提取小时。
“subdate”列的值为22-APR-20 04.18.40.000000000 PM
Extract(HOUR from subdate)函数返回
16
但是,我希望该值为下午4点
我已尝试使用trunc和to_char函数的各种选项,但它们都没有给出所需的输出。
你能帮忙解决这个问题吗?
谢谢!
答案 0 :(得分:1)
既然你在谈论格式,你不仅仅是提取时间" - 你真的在提取一个字符串。
TO_CHAR(subdate, 'hh.mi AM')
应该这样做。
已添加:根据评论。如果你想:分隔符而不是。这很简单,只需在格式掩码中更改即可。如果要向下舍入到小时,请使用trunc(subdate,' hh')而不是subate。如果你需要删除前导零,你可以将整个表达式包装在LTRIM(...,' 0')中,或者正如Alex Poole建议的那样,使用fm切换如下:' fmhh :fmmi AM'