to_date 函数 AM PM 格式

Posted

技术标签:

【中文标题】to_date 函数 AM PM 格式【英文标题】:to_date function AM PM Format 【发布时间】:2013-06-06 01:58:08 【问题描述】:

使用 perl 从 csv 文件读取并插入到 oracle 表中。在特定的 csv 字段中,日期可以是 AM 或 PM 格式。因此,当我构造 to_date 时,我使用的是 AM / PM,但它给了我格式代码错误。 to_date 中需要提供什么格式代码才能接受 AM/PM 字段。

insert into invoices(invoice_id,invoice_date) values (2,to_date('2010-Aug-09 12:00:01 PM' , 'yyyy-Mon-dd HH:MI:SS AM / PM'));

【问题讨论】:

正如yyyy 代表“任何四位数字的年份”和MI 代表“任何两位数字的月份”一样,AM 代表“上午或下午”。您不需要在格式字符串中提供这两种可能性。 MI 是分钟,而不是月 Oracle to_date with p.m./a.m的可能重复 【参考方案1】:

您可以指定 AM or PM。试试

SELECT to_date('2010-Aug-09 02:00:01 PM' , 'yyyy-Mon-dd HH:MI:SS AM') "date"
  FROM dual;
SELECT to_date('2010-Aug-09 03:00:01 AM' , 'yyyy-Mon-dd HH:MI:SS PM') "date"
  FROM dual;

输出:

|                          DATE |
---------------------------------
| August, 09 2010 14:00:01+0000 |

|                          DATE |
---------------------------------
| August, 09 2010 03:00:01+0000 |

这里SQLFiddle演示

【讨论】:

以上是关于to_date 函数 AM PM 格式的主要内容,如果未能解决你的问题,请参考以下文章

关于Oracle中to_date的用法

oracle中的to_date函数

pl/sql to_date

为啥 ORACLE TO_DATE() 函数可以接收任何日期格式? [复制]

oracle to_date 函数不接受格式

Oracle TO_DATE() 函数格式化时间全