2013-06-06 264 views
3

使用perl從csv文件讀取並插入到oracle表中。在特定的csv字段中,日期可以是AM或PM格式。所以當我構建to_date時,我使用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')); 
+0

正如'yyyy'表示 「任何四位數年份」 和'MI'代表「任意兩位數字的月份「,」AM「代表」AM或PM「。您不需要在格式字符串中提供兩種可能性。 –

+0

MI是分鐘,而不是月份 – plyawn

+0

[Oracle to \ _date with p.m./a.m](http://stackoverflow.com/questions/27269903/oracle-to-date-with-p-m-a-m)可能重複 –

回答

7

您可以指定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演示