好的我正在尝试编写一个查询,说明获取当前日期并将其作为开始日期。然后我想从EndDate的当前日期返回一个月。是否有可能做到这一点?就像它是9-15-2010作为开始日期我可以从那个月回到8-15-2010或者这是不可能的....你会做什么像9-20-2010作为开始日期,因为每个月都有不同的天数?否则如果不可能,我怎么办呢?该报告将始终在每月25日运行,所以任何想法?我需要从25个月开始一个月......如果需要,我可以在几个月之间得到一些重复的记录但是显然更好
现在我正在使用它:
DECLARE @StartDate DATETIME,
@EndDate DATETIME;
SET @StartDate = DATEADD(m,-1,GETDATE());
SET @EndDate = DATEADD(m, 1, @StartDate);
这有用吗?
另外,我怎么说我的AuditInsertTimestamp介于@Start和@EndDate之间?
目前我有这个:
AND cvn.[AuditInsertTimestamp] BETWEEN @StartDate AND @EndDate ;
这仍然给我一些像7-26-2010的日期......
谢谢!
答案 0 :(得分:2)
should work.你试过吗?
如果它不起作用(并且只有12个测试用例来检查您是否不信任该文档),那么您可以从date parts重新构建日期。
这是问题所在。它应该是这样的:
cvn.[Subject] = 'Field Changed (Plate Type)'
AND (
cvn.[Note] LIKE 'Old Type: IRP%New Type: BASE PLATE%'
OR cvn.[Note] LIKE 'Old Type: Base Plate%New Type: IRP%'
)
AND cvn.AuditInsertTimestamp BETWEEN GETDATE() AND DATEADD(MONTH, -1, GETDATE())
AND对OR进行预测,因此您使用旧类型:IRP或正确的日期范围(使用旧类型:基板)拾取任何内容
答案 1 :(得分:0)
根据您的评论:
这是用来选择的 记录。所以如果我在25日运行它我 需要30天回到我的领域 AuditInsertTimestamp需要 在这两个日期之间。
我认为你需要做这样的事情:
SELECT * FROM Table
WHERE AuditInsertTimestamp BETWEEN GETDATE() AND DATEADD(MONTH, -1, GETDATE())