zoukankan      html  css  js  c++  java
  • 【SQL】How to get First and Last day of a Year – TSQL

    SELECT      DATEADD(YEAR, DATEDIFF(YEAR, 0,
                DATEADD(YEAR, -1, GETDATE())), 0),
                'First Day of Previous Year'
    UNION ALL
    SELECT      DATEADD(MILLISECOND, -3, DATEADD(YEAR,
                DATEDIFF(YEAR, 0, DATEADD(YEAR, -1, GETDATE())) + 1, 0)),
                'Last Day of Previous Year'
    UNION ALL
    SELECT      DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0),
                'First Day of Current Year'
    UNION ALL
    SELECT      DATEADD(MILLISECOND, -3,
                DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) + 1, 0)),
                'Last Day of Current Year'
    UNION ALL
    SELECT      DATEADD(YEAR, DATEDIFF(YEAR, 0,
                DATEADD(YEAR,1,GETDATE())), 0),
                'First Day of Next Year'
    UNION ALL
    SELECT      DATEADD(MILLISECOND, -3,
                DATEADD(YEAR, DATEDIFF(YEAR, 0,
                DATEADD(YEAR, 1, GETDATE())) + 1, 0)),
                'Last Day of Next Year'

    Result Set:

    ———————– ————————–
    2010-01-01 00:00:00.000 First Day of Previous Year
    2010-12-31 23:59:59.997 Last Day of Previous Year
    2011-01-01 00:00:00.000 First Day of Current Year
    2011-12-31 23:59:59.997 Last Day of Current Year
    2012-01-01 00:00:00.000 First Day of Next Year
    2012-12-31 23:59:59.997 Last Day of Next Year

    (6 row(s) affected)

    These can be generalized as:

    – © 2011 – Vishal (http://SqlAndMe.com)

    DECLARE @TRAVELYEARS INT = -1
    SELECT DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, @TRAVELYEARS ,GETDATE())), 0), 'First Day of Year'
    UNION ALL
    SELECT DATEADD(MILLISECOND, -3, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, @TRAVELYEARS, GETDATE())) + 1, 0)), 'Last Day of Year'
    
    SET @TRAVELYEARS = 1
    SELECT DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, @TRAVELYEARS ,GETDATE())), 0), 'First Day of Year'
    UNION ALL
    SELECT DATEADD(MILLISECOND, -3, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, @TRAVELYEARS, GETDATE())) + 1, 0)), 'Last Day of Year'

    Result Set:

    ———————– ———————-
    2010-01-01 00:00:00.000 First Day of Next Year
    2010-12-31 23:59:59.997 Last Day of Next Year

    (2 row(s) affected)


    ———————– ———————-
    2012-01-01 00:00:00.000 First Day of Next Year
    2012-12-31 23:59:59.997 Last Day of Next Year

    (2 row(s) affected)

    Hope This Helps!

  • 相关阅读:
    15 | 二分查找(上):如何用最省内存的方式实现快速查找功能?
    11 | 线程:如何让复杂的项目并行执行?
    数据结构与算法-10-递归调用
    (图文并茂,权威最详细)Wireshark抓包分析 TCP三次握手/四次挥手详解
    总结-自己傻的坑学习java spingboot不仔细
    网络抓包
    数据库简介
    JavaSE基础之Map与Collection
    JavaSE基础之抽象类与接口
    JavaSE基础之重载和重写
  • 原文地址:https://www.cnblogs.com/taoqianbao/p/2835384.html
Copyright © 2011-2022 走看看