SQL 如何从日期中提取时间到 HH:MI:SS PM/AM?
Posted
技术标签:
【中文标题】SQL 如何从日期中提取时间到 HH:MI:SS PM/AM?【英文标题】:SQL How do I extract time from a date to HH:MI:SS PM/AM? 【发布时间】:2015-06-25 12:07:27 【问题描述】:我想在 SQL Oracle 中将日期格式更改为 HH:MI:SS PM/AM。
我想在这种情况下使用它:
to_char(a.dtime,'HH:MI:SS') >= 12:00:00 then to_char(a.dtime,'HH:MI:SS PM') else null end as date
>但 SQL 不想显示所有 to_char 时间 > 12:00 但它只显示那些有 12:%%:%% 的时间。
它不适用于 to_date。 有什么建议么?提前非常感谢。
【问题讨论】:
【参考方案1】:您可以使用TO_CHAR( datetime, format )
格式化DATE
列。格式选项为here。
这将为您提供日期值的时间部分(12 小时制加上 AM/PM):
SELECT TO_CHAR( column_name,'HH:MI:SS AM')
FROM your_table
编辑 - 解决更新问题
你可以这样做:
SELECT CASE WHEN TO_NUMBER( TO_CHAR( a.dtime_appl_creation, 'HH24' ) ) >= 12
THEN TO_CHAR( a.dtime, 'HH:MI:SS PM' )
END AS "date"
FROM table_name
【讨论】:
【参考方案2】:SELECT to_char(sysdate,'dd/MM/yyyy hh:mi:ss am')
FROM dual
【讨论】:
【参考方案3】:case
when a.dtime_appl_creation-trunc(a.dtime_appl_creation) > 0.5 then 'after noon'
else 'before noon'
end
【讨论】:
以上是关于SQL 如何从日期中提取时间到 HH:MI:SS PM/AM?的主要内容,如果未能解决你的问题,请参考以下文章
红移复制时,时间格式为“YYYY-MM-DD HH:MI:SS”的纪元