暂无图片
Oracle怎样确定一年是否是闰年?
我来答
分享
2023-03-12
Oracle怎样确定一年是否是闰年?

Oracle怎样确定一年是否是闰年?

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
三阳

若要判断一年是否为闰年,可以看二月底是否为29号。

with v1 as

  (select date '2023-03-12' as d from dual)

select trunc(d,'yyyy') as year_begin,

  add_months(trunc(d,'yyyy'),1) as feb_begin,

  last_day(add_months(trunc(d,'yyyy'),1)) as feb_end,

  to_char(last_day(add_months(trunc(d,'yyyy'),1)),'dd') as feb_end_day

from v1;


YEAR_BEGIN   FEB_BEGIN   FEB_END        FEB_END_DAY

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

2023-01-01    2023-02-01   2023-02-28   28

结果:2023年不是闰年。

暂无图片 评论
暂无图片 有用 7
打赏 0
暂无图片
Thomas

create or replace function f_leap_year( ls_year varchar2)
return varchar2 is
ls_rtn varchar2(1);
begin
select decode(to_char(to_date(ls_year||'-03-01','yyyy-mm-dd')-1,'dd'),'28','N','Y') into ls_rtn from dual;
return ls_rtn;
end;
/

SQL> select f_leap_year('2022') from dual;

F_LEAP_YEAR('2022')
--------------------------------------------------------------------------------------------------------------------------------------
N

SQL> select f_leap_year('2024') from dual;

F_LEAP_YEAR('2024')
--------------------------------------------------------------------------------------------------------------------------------------
Y




暂无图片 评论
暂无图片 有用 1
打赏 0
刘晓华

select decode(mod(to_number(to_char(sysdate,'yyyy')),4),0,'Y','N') from dual

暂无图片 评论
暂无图片 有用 1
打赏 0
Thomas

年份能被4整除就是闰年?好像是正确的。但我以前看过一篇文章,说是可能每千百年来会有一次特例,因为每4年有一个2月29日并不能完全将地球绕太阳公转的时间与日历完全吻合,总是多一点。所以每千百年会有一个可以被4整除的年份也是平年。

暂无图片 评论
暂无图片 有用 0
打赏 0
广州_老虎刘

select case when (mod(xxxx,4)=0 and mod(xxxx,100)>0) or mod(xxxx,400)=0 then 1 else 0 end from dual; 

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle 怎么单独导出一个已加密的包和包体,
回答 4
路过学习路过学习路过学习
大佬们,等保有个整改需求,能帮我看看怎么改吗
回答 5
先明确等保的要求吧,是要求操作系统下的,还是数据库层面的。无非就是按照需求建用户授权。
oracle数据库,如何把以下三条sql合并成一条查询出来?
回答 2
已采纳
selectsum(casewhencfacctime>tochar(sysdate,‘yyyyMMdd’)then1else0end)asflowNum,sum(casewhencfaccti
Oracle 11g 同一条sql语句,数据没有改变的情况下,两次语句查询结果不一致
回答 3
加/gatherplanstatistics/的提示后,也执行两次,每次执行后,查看selectfromtable(dbmsxplan.displaycursor('','','allstatslas
oracle库里面设定多久切一次归档的那个参数是什么?
回答 3
已采纳
日志满了就切换。或者altersystemcheckpoint。
如何将高清图存入数据库,有没有好的办法?
回答 5
已采纳
如果非要这样,可以创建大字段列,将其存进去。具体操作方法可以参考盖总的:https://www.eygle.com/archives/2005/04/eoaiplsqlieoeao.html
大佬们,Oracle系统的理论知识可以从哪找到啊,还有一些实战经验那些
回答 1
已采纳
可以多读点书,如果对那个问题点不懂,直接网上搜一下。实战经验的话这得实战没办法,即使看人家的故障总结报告,效果也不是太好,毕竟看和经历不是一回事儿。没事儿搭个测试环境,对有些问题做个复盘,测测,这样应
Oracle下创建ASM磁盘
回答 4
使用udev和raw命令的方式都是可以的,官方推荐使用udev。上面有人回复的raw设备不再支持是指的早期的裸设备方式,概念混淆了,裸设备部署方式指的早期将数据文件直接放到裸设备上不通过asm,当时a
Oracle 数据库 有个需求每天要SQL导出成excel,可不可以写个脚本放在系统后台定时执行。每天去取excel ?
回答 4
比较简单的方式:使用sqluldr2工具,在脚本中指定查询sql和导出文件格式,定时通过crontab导出即可。
QUERY="wheremod(dbms_rowid.rowid_block_number(rowid),10)=1"
回答 1
找出块号为10的倍数的数据。首先要理解,数据是存放在块中的。