oracle 判断是否为闰年
2014-10-21 16:58
344 查看
最简单的方法就是判断2月是28天还是29天
SELECT CASE TO_CHAR(LAST_DAY(TO_DATE(&YEAR || '02', 'YYYYMM')), 'dd')
WHEN '28' THEN
'不是闰年'
ELSE
'闰年'
END RU
FROM DUAL;
这种方法是很简单,一般正常使用也是没问题的。但是存在缺陷。按闰年的规则(四年一闰,百年不闰,四百年再闰)
比如上面的输入 1100这种是属于 百年不闰 的,但是返回的结果却是闰年。
这里改写方法。
select case
when (MOD(&year, 4) = 0 and MOD(&year, 100) != 0) or --(四年一闰,百年不闰),(四百年再闰)
(MOD(&year, 400) = 0) then
'366'
else
'365'
end DAYS
from dual;
也就是多了层判断,这样是没有问题了的。
SELECT CASE TO_CHAR(LAST_DAY(TO_DATE(&YEAR || '02', 'YYYYMM')), 'dd')
WHEN '28' THEN
'不是闰年'
ELSE
'闰年'
END RU
FROM DUAL;
这种方法是很简单,一般正常使用也是没问题的。但是存在缺陷。按闰年的规则(四年一闰,百年不闰,四百年再闰)
比如上面的输入 1100这种是属于 百年不闰 的,但是返回的结果却是闰年。
这里改写方法。
select case
when (MOD(&year, 4) = 0 and MOD(&year, 100) != 0) or --(四年一闰,百年不闰),(四百年再闰)
(MOD(&year, 400) = 0) then
'366'
else
'365'
end DAYS
from dual;
也就是多了层判断,这样是没有问题了的。
相关文章推荐
- ORACLE 通过日期变量判断是否闰年
- Oracle判断是否闰年
- [代码]判断是否为闰年
- (year%4 == 0) 是否足够判断润年?2000 年是闰年吗?
- 判断是否为闰年的方法
- 在删除表前,oracle如何判断表是否存在,存在就删再创建,不存在直接创建!
- Oracle 中如何判断时间类型Date是否为空
- oracle判断字符转是否全部为数字
- oracle判断对象是否存在
- oracle中判断一个字符串是否全部为数字的函数
- 能被400或者4整除。 判断是否闰年 判断是一年的多少天 用C语言编写下列程序要源码:“输入年月日
- //题目:输入一个年份,判断是否有闰年. 碰到一个问题```
- Sql Server、Oracle以及Access数据库 判断字段是否为空的办法
- 实训JAVA语言设计——从键盘输入一个年份,判断是否是闰年
- ORACLE写一函数,准确地判断字段是否含有汉字或者提取汉字等
- Oracle 中如何判断一个字符串是否为数字
- javascript 实现 用户输入框 判断是否是闰年
- oracle 基础和管理 如何判断某个表中是否存在某个字段?
- Oracle中判断表是否存在
- 判断Oracle字段中是否存在中文《asciistr函数》