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!

  • 相关阅读:
    敏捷手艺参考书籍
    算法一书配套网站
    一张图了解UML类图的所有关系
    如何团队合作--Team Geek
    正则--解析换行
    SourceTree基本使用
    springMVC--第一个demo
    Notepad++--去掉空格和换行
    ES 部分API
    spring--启动报错 Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容
  • 原文地址:https://www.cnblogs.com/taoqianbao/p/2835384.html
Copyright © 2011-2022 走看看