zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    测试候选区
    This is my new post
    发布到首页候选区
    nb
    []
    隐藏列(gridview遍历)
    交叉表、行列转换和交叉查询经典
    数据库设计中的14个技巧
    jQuery操作表格,table tr td,单元格
    不愿将多种编程语言杂糅在一起?可能你还没意识到而已
  • 原文地址:https://www.cnblogs.com/aoximin/p/12670450.html
Copyright © 2011-2022 走看看