Oracle对2位年份的处理

php中文网
发布: 2016-06-07 15:13:09
原创
1392人浏览过

欢迎进入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

游戏点卡API接口
游戏点卡API接口

点卡API支付接口支持各大游戏类一卡通接口。优势:1、同行业点卡回收支付业务更全;2、同行业点卡回收处理速度更快;3、同行业点卡回收技术更强,支持多卡同时提交;更新内容:1、增加点卡卡密规则文档,发便开发人员根据卡密位数提交前判断;2、增加点卡api接口密钥申请教程,减少在申请过程担误的时间;3、POST传值加密措施更严谨,同行业内存在多年的不足已修复完善;

游戏点卡API接口 0
查看详情 游戏点卡API接口

    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;

Oracle对2位年份的处理

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号