我需要编写一个只显示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?
答案 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“”结束