0

我想把日期 06/23/2008 4:00:00 PM 转换成这种格式

MON June 23 16:00:00 EDT 2008

在 oracle 中。请给我 sql 查询来满足我将日期转换为上述格式的要求。

4

2 回答 2

1

在 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
于 2013-08-08T07:56:28.527 回答
0

假设该(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 05June 5?我假设是后者。

于 2013-08-08T08:18:33.797 回答