我需要从一年前的特定日期获取数据总和。但是我对间隔有困难
Select 0 - sum(l.icdetailquantity )
from inventoryline l
where l.icmasterid = 'WAD185967E' and l.icdetailtranstype = 5
and l.icdetaildate <= '01-Jan-2019' and l.icdetaildate > Now() - interval '1 year'
这按预期工作,但我需要传递一个不使用 Now() 的日期
Select 0 - sum(l.icdetailquantity )
from inventoryline l
where l.icmasterid = 'WAD185967E' and l.icdetailtranstype = 5
and l.icdetaildate <= '01-Jan-2019' and l.icdetaildate > '01-Jan-2019' - interval '1 year'
第二个SQl报错
ERROR: invalid input syntax for type interval: "01-Jan-2019"
LINE 4: ...detaildate <= '01-Jan-2019' and l.icdetaildate > '01-Jan-20...
最佳答案
您正在尝试从字符串中减去年份。这不起作用,您必须首先使用以下方法将 youru 字符串转换为日期对象:
to_date(date_string,format)
适合您的示例:
to_date('01-Jan-2019', 'DD-Mon-YYYY') - interval '1 year'
关于sql - SQL Interval 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56688855/