使用AM / PM指示器oracle以12小时格式从时间戳中提取小时

时间:2016-04-22 21:23:50

标签: sql database oracle

我正在尝试使用A.M / P.M指标以12小时格式从时间戳列(oracle)中提取小时。

“subdate”列的值为22-APR-20 04.18.40.000000000 PM

Extract(HOUR from subdate)函数返回

16

但是,我希望该值为下午4点

我已尝试使用trunc和to_char函数的各种选项,但它们都没有给出所需的输出。

你能帮忙解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

既然你在谈论格式,你不仅仅是提取时间" - 你真的在提取一个字符串。

TO_CHAR(subdate, 'hh.mi AM')

应该这样做。

已添加:根据评论。如果你想:分隔符而不是。这很简单,只需在格式掩码中更改即可。如果要向下舍入到小时,请使用trunc(subdate,' hh')而不是subate。如果你需要删除前导零,你可以将整个表达式包装在LTRIM(...,' 0')中,或者正如Alex Poole建议的那样,使用fm切换如下:' fmhh :fmmi AM'