如何使选择语句仅显示' PM'而不是' AM'从时间戳中选择小时时

时间:2016-04-15 16:40:49

标签: sql oracle

我需要编写一个只显示PM而不显示AM的select语句。 我仍然希望显示AM结果..但是没有显示AM' AM'一小时后... ..

  

例如..而不是显示上午8点我只想要8但是如果它下午7点,   我想把它显示为晚上7点。

我怎样才能做到这一点?

我尝试了这个,但这会给我AM和PM ..但我只想让PM显示。

select to_char(po.pick_date,'HH12 PM') as Hour from tableA where x = y;

这可以在select语句中执行吗?或者我是否需要其他方法从结果集中清除AM?

2 个答案:

答案 0 :(得分:1)

一种方法使用replace()

select replace(to_char(po.pick_date, 'HH12 PM'), ' AM', '') as Hour
from tableA
where x = y;

基于to_char()的使用,我推测您的数据库是Oracle或Postgres。

答案 1 :(得分:1)

要回答这个问题,因为您的RDBMS提供程序存在疑问:

假设您的提供者具有日期格式化功能,您应该能够:

时间部分在上午那么格式没有am / pm后缀 ELSE 格式,带有am / pm后缀 END

或类似

连接格式,不带上午/后缀,CASE WHEN 时间部分在下午然后“PM”ELSE“”结束