oracle to_char 进制转换_ORACLE函数TO_CHAR以及数字转换格式

,1位数字(倒数)

to_char(to_date(21120401,'yyyymmdd'),'iyyy, iyy,iy,i')=2112, 112,12,2

23 J 儒略日(多用于天文的一种日历),从公元前4712年一月一日算起,得出的结果是个整数,算法大体为 (公元日期+4712)*儒略日历年平均天数

24 MI 秒(0-59)

25 MM 2位月(1-12)

26 MON 月的简称,和国家有关系NLS_DATE_LANGUAGE,例如04在中文环境下用4月表示.

27 MONTH 月的名称,国家有关系NLS_DATE_LANGUAGE,目前在中文下04表示为4月。

28 PM

P.M.

同am,a.m.表示下午

29 Q 季度(1-4)

30 RM 用罗马数字表示的月份,I ,II ,III ,IV ,V ,VI ,VII ,VIII,IX ,X ,XI ,XII

31 RR 有点四舍五入表示年的意思,具体的用法有那么一点点复杂。

以s表示输入的年份最后两位,c表示当前的年份最后两位,其输出结果(新的年份前两位)可以用函数r=f(s,c)来表示,s2,c2分别表示s,c的前两位。

1)s=[0,49],c=[0,49],则r=c2

2) s=[0,49],c=[50,99],则 r=c2+1

3) s=[50,99],c=[0,49],则r=c2-1

4) s=[50,99],c=[50,99],则 r=c2

简而言之就是靠近当前年份原则,如果和当前年份同区域那么就一样,如果比当前区域大,那么就是当作是当前世纪前一世纪,否则就是下一个世纪。

举例来说,以to_date为例子

SQL&gt select to_date('89-01-01','rr-mm-dd') ,to_date('12-01-01','rr-mm-dd') FROM DUAL;

TO_DATE('89-01-01','RR-MM-DD') TO_DATE('12-01-01','RR-MM-DD')

------------------------------ ------------------------------

1989-01-01 2012-01-01

我想oracle会搞这个东东出来,估计有两个考虑一个是为了方便,一个是为了对付百年或者千年问题。

32 RRRR 如果输入参数只有两位,则同rr,否则就同yyyy作用.

33 SS 秒(0-59),一分钟内

34 SSSSS 一天从午夜开始的累积秒数.(0-86399)

35 TS 返回短日期格式内容,包括时分秒等,只能和dl,ds组合使用,格式是:

dl ts或者dl ts ,中间以空格间隔开。TO_CHAR(SYSDATE,'TS')=下午 4:50:04

表现形式受NLS_TERRITORY 和NLS_LANGUAGE影响。

36 TZD 夏令时制信息,时区简写加上夏令时信息,必须和格式tzr设置的时区对应。

包括下面三个TZ开头的,都是和时区相关,并不是直接用在to_char

37 TZH 时区中的小时,例如hh:mi:ss.fftzh:tzm'

38 TZM 时区中的分钟.

39 TZR 时区中的区域信息,必须是数据库支持的时区,例如US/Pacific

40 WW 和iw类似,也是表示星期的序号,从年的第一天算起到年的最后一个第七天。二者取值基本相同。(1-53) ,例如2008-01-01 到2008-01-07 算1,2008-01-09~2008-01-13 算2

41 W 一个月中的星期序号,其算法同ww,不过是局限在一月之内而已,和iso的不同。

42 X 代表本地根符号,没有特别用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值