【问题标题】:How to get the last seven days of one month's data in SQL?如何在SQL中获取一个月的最后7天数据?
【发布时间】:2018-07-30 20:42:58
【问题描述】:

我使用下面的 SQL 来获取该月的最后一天,但我需要该月的最后 7 天:

DECLARE @dt as DATETIME = '7/29/2018'
DECLARE @LastDayOfTheMonth as DATETIME = DATEADD(DAY, -1, DATEADD(Month, 1, DATEADD(DAY,1 - DAY(@dt),@dt)))

SELECT @LastDayOfTheMonth

我也可以使用这个 SQL 函数来获得上述结果,但我需要任何一个月的最后 7 天的记录。

SELECT EOMONTH('7/29/2018')

【问题讨论】:

  • 我也可以使用这个 SQL 函数来获得上述结果,但我需要任何一个月的最后 7 天的记录。 -> 选择 EOMONTH('7/29/2018')
  • 你是指月底前的第7天吗?也许DATEADD(day, -6, EOMONTH('7/29/2018')).
  • 是月底前的第 7 天。那行得通!非常感谢丹。我真的很感激。
  • 请谨慎使用区域性、语言相关、模棱两可的日期格式,例如 mm/dd/yyyy。使用yyyymmdd 更安全。
  • 感谢亚伦的建议。我将使用 yyyymmdd 格式。

标签: sql sql-server


【解决方案1】:

只需再次使用 DATEADD,即可在 @LastDayOfTheMonth 多休息 1 到 6 天。

SELECT @LastDayOfTheMonth, DATEADD(DAY,-1,@LastDayOfTheMonth), ..

如果要从函数中返回 7 个值,建议将其设为表函数。

【讨论】:

  • 感谢曼迪的建议。感谢您的帮助。
猜你喜欢
  • 2010-11-06
  • 2019-12-19
  • 2013-02-15
  • 1970-01-01
  • 2022-12-17
  • 1970-01-01
  • 2019-01-16
  • 2021-07-30
相关资源
最近更新 更多