繁体   English   中英

SQL-获取当年每个月的最后一天-SQLITE3

[英]SQL - Get last day of every month of the current year - SQLITE3

我匆忙浏览了SO,并找到了许多有用的查询来执行此操作,但并非完全符合我的要求,甚至他们说这是答案,但对于sqlite3根本不起作用。

所以我们开始。 我想返回当年每个月的最后一天的所有数据。 如下所示:(只是忽略时间,只是想添加它以了解我的字段的实际样子)

Name | Date_Added
=================================
Bob  | 2018-01-31 05:23:06.021421
Bob  | 2018-02-28 14:16:03.076021
Bob  | 2018-03-31 13:16:03.076021
Bob  | 2018-04-30 13:16:03.076021
Bob  | 2018-05-31 13:16:03.076021
Bob  | 2018-06-04 13:16:03.076021
Mary | 2018-01-31 13:16:03.076021
Mary | 2018-02-28 13:16:03.076021
Mary | 2018-03-31 13:16:03.076021
Mary | 2018-04-30 13:16:03.076021
Mary | 2018-05-31 13:16:03.076021
Mary | 2018-06-04 13:16:03.076021

我已经尝试过类似的事情:

SELECT * FROM tableName WHERE date('now','start of month','-1 month','-1 day') ORDER BY "Name"

但似乎它仍在发送数据,而不仅仅是在最后一天

任何帮助或指示将不胜感激!

如果日期是该月的最后一天,那么如果添加一天,则该月将有所不同:

SELECT * FROM tableName 
    WHERE 
        strftime("%m", Date_Added) != strftime("%m", Date_Added, "+1 day")
            AND 
        strftime("%Y", Date_Added) = strftime("%Y", "now")
ORDER BY "Name";
SELECT * FROM tableName WHERE
 "Date_added" BETWEEN date('2018-12-30','start of month','-10 month','-1 day') AND date('2018-12-30','start of month','-10 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-9 month','-1 day') AND date('2018-12-30','start of month','-9 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-8 month','-1 day') AND date('2018-12-30','start of month','-8 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-7 month','-1 day') AND date('2018-12-30','start of month','-7 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-6 month','-1 day') AND date('2018-12-30','start of month','-6 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-5 month','-1 day') AND date('2018-12-30','start of month','-5 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-4 month','-1 day') AND date('2018-12-30','start of month','-4 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-3 month','-1 day') AND date('2018-12-30','start of month','-3 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-2 month','-1 day') AND date('2018-12-30','start of month','-2 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','-1 month','-1 day') AND date('2018-12-30','start of month','-1 month','0 day') OR 
 "Date_added" BETWEEN date('2018-12-30','start of month','0 month','-1 day') AND date('2018-12-30','start of month','0 month','0 day') 
ORDER BY "Name"

相当乏味,但正在为我工​​作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM