[软件设计/软件工程] 日期(21-09-1989,DD-MM-YY)和日期(21-09-89,DD-MM-YY)有什么区别?

[复制链接]
发表于 2022-5-3 10:29:26
问题
以下查询返回结果:

SELECT *
FROM EMPLOYEES
WHERE HIRE_DATE = TO_DATE('21-09-1989','DD-MM-YY');

如果我将日期从1989年9月21日更改为1989年9月21日,则返回零。

SELECT *
FROM EMPLOYEES
WHERE HIRE_DATE = TO_DATE('21-09-89','DD-MM-YY');

这里有什么问题?

回答
如果使用 YY 作为年份,则返回当前世纪的年份,即 2000-2099 。在您的情况下 -- 2089

如果使用 YYYY 则返回确切的年份。--在您的情况下 1989

如果使用 RR 则返回介于 1950-2049 之间的年份。--在您的情况下 1989

所以

TO_DATE('21-09-1989','DD-MM-YY') --> 21-09-1989
-- oracle is smart to detect the given format as YYYY

TO_DATE('21-09-89','DD-MM-YY') --> 21-09-2089
-- as 2089 is between 2000-2099

TO_DATE('21-09-89','DD-MM-RR') --> 21-09-1989
-- as 1989 is between 1950-2049





上一篇:asp.net MVC中如何实现动态资源权限?
下一篇:如何禁用角度数据表中数据的初始排序?

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表