我需要在程序中运行查询/创建过滤器,每天WHERE last_paid是TODAY - 30和TODAY = convert(varchar,getdate(),101)
。最大的问题似乎是该程序的不灵活性,使其成为convert(varchar,getdate(),101)
以外的其他任何东西。
答案 0 :(得分:4)
这将是一个简短的答案,因为这是一个非常容易的问题。您想使用DATEADD语法应该类似于TODAY = convert(varchar,DATEADD(DAY,-30,getdate()),101)
更新:我仍然认为你需要解决你将TODAY存在的问题存储为某种字符串。如果这是DATE
数据类型,您将不必处理此转换废话。
答案 1 :(得分:0)
对于Oracle,请尝试:
TRUNC(SYSDATE) - INTERVAL '30' days
答案 2 :(得分:0)
我在这里错过了什么吗?
DECLARE @Today DATETIME
SELECT @Today = GETDATE() - 30
SELECT @Today AS [Today - 30]
如果您不想要时间,请不要将其设为DateTime数据类型,而是使用DATE:
DECLARE @Today DATE
SELECT @Today = GETDATE() - 30
SELECT @Today AS [Today - 30]