我正在为客户端修复Android应用程序,我需要查询sqlite数据库以显示他们需要的报告。
报告应仅显示当前会计年度的数据(从4月1日开始到3月31日结束)。以前的开发人员做了这个查询:
... WHERE sales_date BETWEEN date('now','localtime','start of year','+3 months') "
+ "AND date('now','localtime','start of year', '+1 year', '+3 months','-1 day') "
此查询目前无效,因为例如在2015年1月,它显示了2015年4月至2015年3月的数据,其中应显示2014年4月至2015年3月的数据。
我正在为sqlite寻找一个优化的解决方案,因为我找到了其他SQL(Truncate date to fiscal year或Use TO_CHAR function to display the Fiscal Year)的类似答案
答案 0 :(得分:1)
在前三个月,你想要前一年。 所以在你开始一年之前减去三个月:
BETWEEN date('now', 'localtime', '-3 months', 'start of year', '+3 months') "
AND date('now', 'localtime', '-3 months', 'start of year', '+1 year', '+3 months', '-1 day')