sql 语句系列(闰年)[八百章之第十九章]

Posted 你永远想象不到,一个光鲜亮丽的Application,有多么

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句系列(闰年)[八百章之第十九章]相关的知识,希望对你有一定的参考价值。

前言

判断闰年还是挺有用的。

mysql

select DAY(LAST_DAY(DATE_ADD(CURRENT_DATE,INTERVAL -DAYOFYEAR(CURRENT_DATE)+1+31 DAY))) as dy
FROM T1

这个看起来有一点点复杂,其实拆开了还是很简单的。
CURRENT_DATE 获取当前日期。

DATE_ADD(CURRENT_DATE,INTERVAL -DAYOFYEAR(CURRENT_DATE)+1+31 DAY)

当前的日期,减去了从1月1号经历的天数然后加1,这个获得的就是1月1号。因为1月有31天,所以加上31,那么就是今年的2月1号。

LAST_DAY 是获取该月的最后一天。所以就能够得出2月最后一天的日期了。

sql server

with x(dy,mth) as
(
select dy,MONTH(dy)
from(
select dateadd(MM,1,(getdate()-datepart(dy,getdate()))+1) dy
from T1) tmp1
union all
select dateadd(dd,1,dy),mth
from x
where MONTH(dateadd(dd,1,dy))=mth
)
select MAX(DAY(dy))
from x

这么一看有点复杂,原理是一样的。

select dateadd(MM,1,(getdate()-datepart(dy,getdate()))+1) dy
from T1

获取2月第一天,第一步和mysql是一致的。

然后就是递归2月的每一天,得出最后一天是28还是29。

以上是关于sql 语句系列(闰年)[八百章之第十九章]的主要内容,如果未能解决你的问题,请参考以下文章

sql 语句系列(加减乘除与平均)[八百章之第十四章]

sql 语句系列(字符串的遍历嵌入删除与统计)[八百章之第十一章]

sql 语句系列(众数中位数与百分比)[八百章之第十五章]

sql 语句系列(用魔法打败魔法)[八百章之第十章]

sql 语句系列(行与列处理)[八百章之第一章]

sql 语句系列(null 值处理)[八百章之第二章]