【问题标题】:Get first day of first month of previous year in yyyy-mm-dd format以 yyyy-mm-dd 格式获取上一年第一个月的第一天
【发布时间】:2020-04-26 07:09:01
【问题描述】:

如何以yyyy-mm-dd 格式获取上一年第一个月的第一天? IE。 2019-01-01。 这是我尝试过的代码:

SELECT DATEADD(yy,-1,DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0))

【问题讨论】:

    标签: sql sql-server tsql date select


    【解决方案1】:

    您可以在 SQL Server 中使用DATEFROMPARTS() 函数从给定的年、月和日期以整数形式创建日期,如下所示。要获得上一年,您可以使用 Year() 函数并从中减去 1。第一个日期和月份总是1,所以这里是硬编码的。

    declare @IntYear int = Year(Getdate()) - 1 --Previous Year
    Select datefromparts(@Intyear, 1, 1)
    

    SSMS 中的输出如下图所示。

    要获得不同格式的输出,您可以关注link

    【讨论】:

      【解决方案2】:

      你基本上拥有它。你只需要FORMAT 函数。

      SELECT FORMAT (DATEADD(yy,-1,DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)), 'yyyy-MM-dd') as date

      【讨论】:

        【解决方案3】:

        您似乎希望生成一个字符串,而不是日期。考虑使用日期函数和字符串连接:您只需从当前日期减去 1 年,然后附加 '-01-01'

        concat_ws('-', year(getdate()) - 1, '01', '01')
        

        Demo on DB Fiddle

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-02
          • 1970-01-01
          • 2013-09-10
          • 2019-11-22
          相关资源
          最近更新 更多