0
点赞
收藏
分享

微信扫一扫

Oralce中日期格式


Oralce中的to_date()函数用于将字符串转换为日期对象,具体使用格式为:

to_date( string,  [  format_mask  ] ,  [  nls_language  ]  )

string1

要转换的字符串.


format_mask 可选项,日期转换格式.

nls_language 可选项. 指定用于转换字符串的nls language.

其中

format_mask主要有以下几种格式:


Format Code

Explanation

YEAR

Year, spelled out

YYYY

4-digit year

MM

Month (01-12; JAN = 01).

MON

Abbreviated name of month.

MONTH

Name of month, padded with blanks to length of 9 characters.

D

Day of week (1-7).

DAY

Name of day.

DD

Day of month (1-31).

DDD

Day of year (1-366).

DY

Abbreviated name of day.

HH

Hour of day (1-12).

HH12

Hour of day (1-12).

HH24

Hour of day (0-23).

MI

Minute (0-59).

SS

Second (0-59).

SSSSS

Seconds past midnight (0-86399).


[问题]

ORA-01810: format code appears twice

可能是像Java那样指定日期格式,比如:

to_char('2006-06-01 18:00:00' 'yyyy-mm-dd hh:MM:ss')而在Oracle中的日期格式是不区分大小写的,所以 mm 出现了两次。

正确的写法是:

to_char('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')


ORA-01722: invalid number

可能是指定小时为hh,而hh取值范围是 1-12,所以如果指定小时为 0 点将出现这个异常,比如:

to_char('2006-06-01 00:00:00' 'yyyy-mm-dd hh:MM:ss')正确的写法是:

to_char('2006-06-01 00:00:00' 'yyyy-mm-dd hh24:MM:ss')

 

 

==============

YY表示两位年数

日期输出带AM/PM,

--输入当前的系统日期,格式为 yyyy-mon-dd HH24:MI:SS AM(PM)
--增加AM PM  --在这个格式中AM PM没有区别 ,表达的含义是一致的
  select to_char(sysdate,'yyyy-mon-dd HH24:MI:SS AM') from dual
  select to_char(sysdate,'yyyy-mon-dd HH24:MI:SS PM') from dual
 
  select to_char(sysdate,'yyyy-mon-dd HH24:MI:SS PM') from dual
===

毫秒表示:

select to_timestamp('16-NOV-11 06.09.57.924000000 PM','DD-MON-YY hh12.mi.ss.ffAM' ) from dual

select to_char(systimestamp, 'DD-MON-YY hh12.mi.ssxff') from dual

select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1,
to_char(current_timestamp) time2 from dual

必须用timestamp

举报

相关推荐

0 条评论