您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle对2位年份的处理

2024/4/6 14:06:00发布20次查看
欢迎进入oracle社区论坛,与200万技术人员互动交流 >>进入 虽然oracle数据存储了4位的年份,但是如果只提供2位数字,oracle就会根据使用的格式是yy还是rr来解释世纪。 yy格式 如果日期中的年份采用的格式为yy,并且只提供了2位年份,那么就认为这一年世纪与数
欢迎进入oracle社区论坛,与200万技术人员互动交流 >>进入
    虽然oracle数据存储了4位的年份,但是如果只提供2位数字,oracle就会根据使用的格式是yy还是rr来解释世纪。
    yy格式
    如果日期中的年份采用的格式为yy,并且只提供了2位年份,那么就认为这一年世纪与数据库服务器上当前设置的世纪相同。因此,指定年份的前两位数字与前年份的前两位数据字相同。例如,如果提供的年份是14,而当前年份是2010年,那么提供的年份就是2014年,同理,如果提供年份是75,那么就是2075年。
    如果日期中的年份使用yyyy格式,但是只提供了2位的年份,那么oracle数据就会使用yy格式来解释。
    下面来看一个查询,它在处理年份14和75时使用yy格式,在下面这个查询中,注意向to_date函数输入的年份是14的75,其输出又被传递给to_char函数。后者又将日期转换成dd-mm-yy格式的字符串。
    sql> select to_char(to_date('04-05-14', 'dd-mm-yy'), 'dd-mm-yyyy'),
    2          to_char(to_date('04-05-75', 'dd-mm-yy'), 'dd-mm-yyyy')
    3    from dual
    4 ;
    to_char(to_date('04-05-14','dd to_char(to_date('04-05-75','dd
    ------------------------------ ------------------------------
    04-05-2014                                                                       04-05-2075
    rr格式
    如果日期中年份采用的格式为rr,并且只提供了最后2位年份,那么年份中的前两位数字就由两部共同决定。提供年份的两位数字(指定年),数据库服务器上当前日期中年份的后2位数字(当年)。确定世纪的规则如下:
    1:
    如果指定年份在00-49之间,并且当前年份在00-49之间,那么指定年世纪就和当前年份世纪相同。如果指定01,当前是2010,那么指定年就为:2015
    2:
    如果指定年份在50-99之间,并且当前年份在00-49之间,那么指定年份世纪就等于当前年份的世纪减去1。如果指定是11,当前是2010,那么指定年就为:1911。
    3:
    如果指定年份在00-49之间,并且当前年份在50-49之间,那么指定年的世纪就是等于当前世纪加1。如果指定是为11,而当前年份是2055年,那么指定年就是2111年。
    4:
    如果指定年分在50-99之间,并且当前年在50-99之间,那么指定年的世纪就和当前年世纪相同。如果指定为51而当前年为2076年,那么指定年就2051年。
    sql> select to_char(to_date('04-05-14', 'dd-mm-rr'), 'dd-mm-yyyy'),
    2           to_char(to_date('04-05-75', 'dd-mm-rr'), 'dd-mm-yyyy')
    3    from dual
    4 ;
    to_char(to_date('04-05-14','dd to_char(to_date('04-05-75','dd
    ------------------------------ ------------------------------
    04-05-2014                     04-05-1975
    select to_date('10-dec-10 12:56:00','yyyy-mm-dd hh24:mi:ss','nls_date_language=american') from dual;
    select to_char(to_date('10-dec-10 12:56:00', 'dd-mm-rr hh24:mi:ss','nls_date_language=american'), 'yyyy-mm-dd hh24:mi:ss') from dual;
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product