【问题标题】:Get first day of previous month in YYYY-MM-DD format以 YYYY-MM-DD 格式获取上个月的第一天
【发布时间】:2019-08-28 07:34:54
【问题描述】:

如何以yyyy-mm-dd 格式获取上个月的第一天。

我试过了

SELECT CONVERT(VARCHAR(10), DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, GETDATE()), 0)), 120)  

【问题讨论】:

  • this的可能重复

标签: sql sql-server tsql date sql-date-functions


【解决方案1】:

您可以为此使用EOMONTH 函数。这个函数应该返回月末,所以在结果中加一天:

SELECT DATEADD(DAY, 1, EOMONTH(GETDATE(), -2)) -- returns 2019-07-01 on 2019-08-28 01:02:03.004

将上述表达式包装在FORMAT(..., 'yyyy-MM-dd') 中以格式化结果。

【讨论】:

  • 值得注意的是该值没有“格式”;这是由表示层决定的。对于 SSMS,对于 date, 数据类型,其默认值往往是 yyyy-MM-dd
【解决方案2】:

这将起作用:

SELECT CONVERT(VARCHAR(10),DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)),23)

输出:

2019-07-31

【讨论】:

    猜你喜欢
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2020-06-02
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多