我想把日期 06/23/2008 4:00:00 PM
转换成这种格式
MON June 23 16:00:00 EDT 2008
在 oracle 中。请给我 sql 查询来满足我将日期转换为上述格式的要求。
在 PostgreSQL 下,它会如下所示(在 Oracle 下应该可以正常工作):
select to_char(DATE '06/23/2008', 'DY FMMONTH dd 16:00:00 "EDT" yyyy');
产生:
MON JUNE 23 16:00:00 EDT 2008
'MONTH' 之前的 'FM' 删除了空格填充(添加以使所有月份占用相同的长度)。
双引号 EDT 确保它不会被解释为 to_char 日期格式的一部分。
更新包括时间:
select to_char(TIMESTAMP '06/23/2008 4:00:00 PM', 'DY FMMONTH dd HH24:MI:SS "EDT" yyyy');
产生:
MON JUNE 23 16:00:00 EDT 2008
假设该(mm/dd/yyyy)
位实际上不是字符串的一部分:
select to_char(to_date(
'06/23/2008 4:00:00 PM','MM/DD/YYYY HH:MI:SS PM')
,'DY fmMonth DD fmHH24:MI:SS "EDT" YYYY'
) from dual;
MON June 23 16:00:00 EDT 2008
您没有指定当月日期和小时数少于 10 时要显示什么 - 例如 6 月 5 日是否应该显示为June 05
或June 5
?我假设是后者。