sql-server - 每月自动查询
问题描述
我在下面有一个查询:
select a.ID,
a.Date_Reported,
b.Date_Received
from tx_ext a
join tx b on b.id = a.id
AND b.Date_Reported >= convert( datetime, '2018-05-01' )
AND b.Date_Reported <= convert( datetime, '2018-05-31' )
如您所见,我目前正在手动设置 5 月(上个月)的日期。我怎样才能改变我的查询,无论我在哪个月份,我总是运行完整的前一个月。例如,这个月是六月,所以我想单独从五月开始计算值。下个月是七月,所以我想跑六月。
我想自动化这个,所以我不需要每个月手动输入日期
谢谢
解决方案
你可以使用:
select a.ID,
a.Date_Reported,
b.Date_Received
from tx_ext a
join tx b on b.id = a.id
AND b.Date_Reported >= DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
AND b.Date_Reported <= EOMONTH(GETDATE());
请注意结束日期,30/06/2018 00:00:00
所以我假设您将 Date_Reported 存储为 DATE(而不是 DATETIME)。如果您有时间部分,您需要更改为:
AND b.Date_Reported < DATEADD(d,1,EOMONTH(GETDATE()))
编辑
select a.ID,
a.Date_Reported,
b.Date_Received
from tx_ext a
join tx b on b.id = a.id
AND b.Date_Reported>=DATEADD(month,-1,DATEADD(month,DATEDIFF(month,0,GETDATE()),0))
AND b.Date_Reported<DATEADD(d,1,EOMONTH(GETDATE(),-1)) ;
推荐阅读
- javascript - 带有里程碑的垂直进度条
- python - 在颜色栏中裁剪扩展标记
- ios - 使用 Adhoc 分发临时配置文件时 Apple Pay 无效
- tensorflow - TPU 支持使用变换进行图像增强
- algorithm - 用动态规划求解分数背包问题
- algorithm - 两人硬币游戏的最优策略
- javascript - 我对 clearTimeout 有疑问,在少数情况下无法正常工作
- reactjs - 在 rowData 更新后,ag-grid noRowsOverlay 消失
- ios - 归档项目时 xcode 中出现未知错误
- javascript - 在 JavaScript 中制作正则表达式以在表单标签中找到“动作”属性并替换它