標籤:opera 參考 sda post span href 原因 let pre
描述
執行如下的SQL
select TO_DATE(‘2018-1-9 12:41:00‘,‘yyyy-MM-dd hh24:mm:ss‘) from dual;
然後就報了如下的錯誤
ORA-01810: 格式代碼出現兩次
- 00000 - "format code appears twice"
Cause:
Action:
select RECEIVEDATE,RECEIVETIME,TO_DATE(concat(RECEIVEDATE,concat(‘ ‘,RECEIVETIME)),‘yyyy-MM-dd hh24:mm:ss‘) from workflow_currentoperator where requestid = 42 and nodeid = 162 ;
原因及解決方案
TO_DATE函數的文法如下:
TO_DATE(char,fmt);
其中char為字串,fmt為日期格式,如yyyy-mm-dd hh24:mi:ss
。
對於SQL的文法來說是不區分大小寫,所以日期格式的MM和mm是一樣的,在oracle的日期轉換中對於月份應該使用MM
,對於分鐘應該使用MI
。sql應該修改為如下:
select TO_DATE(‘2018-1-9 12:41:00‘,‘yyyy-MM-dd hh24:mi:ss‘) from dual;
oracle的時間日期格式如下表:
元素 |
描述 |
DD |
月的天數(1-31). |
YYYY |
年份 |
MM |
月份(01-12; 一月 = 01). |
HH |
時間(12小時制) |
HH12 |
時間(12小時制) |
HH24 |
時間(24小時制) |
MI |
分鐘 |
SS |
秒 |
這個和java的時間日期格式化是不一樣的,java的時間日期格式化如下表:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");sdf.format(date);
Letter |
Date or Time Component |
Presentation |
Examples |
G |
Era designator |
Text |
AD |
y |
Year |
Year |
1996 ; 96 |
Y |
Week year |
Year |
2009 ; 09 |
M |
Month in year (context sensitive) |
Month |
July ; Jul ; 07 |
L |
Month in year (standalone form) |
Month |
July ; Jul ; 07 |
w |
Week in year |
Number |
27 |
W |
Week in month |
Number |
2 |
D |
Day in year |
Number |
189 |
d |
Day in month |
Number |
10 |
F |
Day of week in month |
Number |
2 |
E |
Day name in week |
Text |
Tuesday ; Tue |
u |
Day number of week (1 = Monday, ..., 7 = Sunday) |
Number |
1 |
a |
Am/pm marker |
Text |
PM |
H |
Hour in day (0-23) |
Number |
0 |
k |
Hour in day (1-24) |
Number |
24 |
K |
Hour in am/pm (0-11) |
Number |
0 |
h |
Hour in am/pm (1-12) |
Number |
12 |
m |
Minute in hour |
Number |
30 |
s |
Second in minute |
Number |
55 |
S |
Millisecond |
Number |
978 |
z |
Time zone |
General time zone |
Pacific Standard Time ; PST ; GMT-08:00 |
Z |
Time zone |
RFC 822 time zone |
-0800 |
X |
Time zone |
ISO 8601 time zone |
-08 ; -0800 ; -08:00 |
參考
1.https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions203.htm#SQLRF06132
2.https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements004.htm#SQLRF00212
3.java.text.SimpleDateFormat
oracle日期轉換報ORA-01810: 格式代碼出現兩次 01810. 00000 - "format code appears twice"