我还没办法做到。
这是个主意:
select sum(amount)
from account
where amountdate >= 'CURRENTSYSTEMYEAR/CURRENTSYSTEMMONTH/10'
and amountdate <= 'CURRENTSYSTEMYEAR(+1 if it's december) / CURRENTSYSTEMMONTH + 1/10'
我知道日期查询不能以这种方式工作,所以我使用了datepart和dateadd,但没有成功。
例如,如果是2014年3月5日,我希望我的日期范围是2014年3月10日到2014年4月10日。
答案 0 :(得分:1)
您可以转换为字符串并返回日期:
select sum(amount)
from account
where amountdate >= convert(datetime, convert(varchar(8), getdate(), 120) + '10')
and amountdate <= dateadd(month, 1, convert(datetime, convert(varchar(8), getdate(), 120) + '10'))
以下是值:
select convert(datetime, convert(varchar(8), getdate(), 120) + '10')
-- 2014-03-10 today (2014-03-05)
select dateadd(month, 1, convert(datetime, convert(varchar(8), getdate(), 120) + '10'))
-- 2014-04-10 today (2014-03-05)
答案 1 :(得分:0)
SELECT SUM(amount)
FROM account
WHERE amountdate >= CAST(YEAR(GETDATE()) AS CHAR(4))+'/'+CAST(MONTH(GETDATE()) AS CHAR(2))+'/10'
and amountdate <= DATEADD(MM,1, CAST(YEAR(GETDATE()) AS CHAR(4))+'/'+CAST(MONTH(GETDATE()) AS CHAR(2))+'/10' )