【发布时间】:2017-07-20 19:34:09
【问题描述】:
在编写查询以获取同一年之前所有月份的数据时需要帮助。
如果今天的日期是 2017 年 7 月 20 日,我需要检索除今天(2017 年 7 月 20 日)之外的同一年之前所有月份的数据。
如果日期是 2017 年 7 月 20 日,则数据应包括 2017 年 1 月 17 日至 2017 年 7 月 19 日等。
如果日期是 2017 年 7 月 21 日,则数据应包括 2017 年 1 月 17 日至 2017 年 7 月 20 日
谢谢
【问题讨论】:
-
我们很乐意提供帮助,但首先您需要向我们展示您已经尝试过的内容。 SO 不是代码编写服务。
-
这个我试过了
-
要获取当天的 00:00:00 小时,您只需转换为
DATE数据类型(删除时间)并在必要时转换回DATETIMECAST(CAST(GETDATE() AS DATE) AS DATETIME)。除此之外,您需要提供minimal reproducible example 以便我们为您提供帮助。 -
select DATEPART(m, DATEADD(m, 0, getdate())), DATEPART(yyyy, DATEADD(m, -1, getdate())) .. 但是这个检索数据只有当前月份,也不排除当前日期
标签: sql sql-server