我有一个SQL查询,我需要每月运行一次。
查询产生的数据集必须始终是从当月的第11个月到当月的第10个。
我现在在本月11日手动调整日期范围后的几天内手动运行查询:
例如......
A列大于10/10/2015且小于12/11/15
我希望有一个声明可以添加到我的查询中,以自动查找上个月的第11天和当月的第10天。通过这种方式,我可以安排查询并自动通过电子邮件发送结果。
答案 0 :(得分:2)
您应该可以在查询中使用以下内容: -
CONVERT(date,FORMAT(GETDATE(),'yyyy-MM')+'-10')
(本月10日)
和
CONVERT(date,FORMAT(DATEADD(m,-1,GETDATE()),'yyyy-MM')+'-11')
(上个月11日)。
答案 1 :(得分:-1)
尝试在工作DBMS中查看MONTH()函数。在MySQL和MSSQL中,它返回一个与您系统当前月相对应的数字(1月1日)(您可以检查它的日期是否更新)。
使用此函数,您可以减去1以获得上个月,当前一个是1月时必须做一些逻辑,因此1.从现在开始你应该得到12(12月)intead为0(错误)。
干杯,伙计!