‘-0001/01/01’表示的是公元前1年还是公元前2年

桑若 2013-10-17 11:16:04
'0000'年在Oracle中是非法的。'0000/01/01'到'0000/12/31'都是非法的。但是'0001/01/01'-'-0001/12/31'的结果却是367,那就是说隐含的'0000'年有366天。如果'0000'年是公元前1年的话,不应该是闰年啊。并且查看'-0004'-'-0003'年发现'-0004'是闰年,其它都不是闰年。
于是我十分迷惑,'-0001'究竟表示公元前1年还是公元前2年。如果是公元前1年,为什么'0001/01/01'和'-0001/12/31'之间怎么会有367天的时间差?并且还是个闰年?如果是公元前2年,也不应该是闰年啊,并且'-0004'如果表示公元前5年也不该是闰年?
...全文
287 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckc 2013-10-21
  • 打赏
  • 举报
回复
select to_char(to_date('00010101','yyyymmdd')-1,'yyyymmdd') from dual; 执行此sql发现oracle在这里确实处理是错误的 你还是自己用别的办法来计算这个数据吧 你是做考古项目的?居然要用这么前的日期
桑若 2013-10-21
  • 打赏
  • 举报
回复
引用 3 楼 u011211290 的回复:
不应该啊~-0001-12-31之后就是0001-1-1啊~
说的明呀,实际上却这样: SQL> select to_date('0001-01-01','yyyy-mm-dd')-to_date('-0001-12-31','syyyy-mm-dd') DTE from dual; DTE ---------- 367
Volcano__Liu 2013-10-20
  • 打赏
  • 举报
回复
不应该啊~-0001-12-31之后就是0001-1-1啊~
stou 2013-10-18
  • 打赏
  • 举报
回复
帮你顶下, 建议弄点实际的吧。
桑若 2013-10-18
  • 打赏
  • 举报
回复
就这样沉了?怎么没有人帮忙呀?

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧