我们的账单天数因客户而异。由于我需要通过报告周期跟踪客户,我想自动调整参数。此信息将填充报告。
bolow代码不起作用,但说明了我想要实现的目标:
declare @BillDate int
set @BillDate = 18
if @billdate > DATEPART(dd, getdate())
select DATEPART(yyyy, getdate()) ++ DATEPART(mm,getdate()) ++ @BillDate --last bill date
else
select DATEPART(yyyy, getdate()) ++ DATEPART(mm,getdate())-1 ++ @BillDate --last bill date
我还考虑过使用dateadd()
添加一个月,但我需要更改当天的部分时间,我不确定该怎么做。
有一种普遍接受的方式吗?我的想法看起来都像黑客一样。
编辑/更新:我将在where子句中使用它来过滤,所以:
declare @LastBillDate date, @billday as int
select @billday = billdate from btable where customer = 'Cust'
--Define @LastBillDate here based on getdate() and @billday
SELECT *
FROM atable
WHERE starttime > @LastBillDate
答案 0 :(得分:0)
更改您的选择语句,如下所示:
SELECT CONCAT(DATEPART(yyyy, getdate()),'-',DATEPART(mm,getdate()),'-',@BillDate)