首页 > 解决方案 > SQL - 如何附加句点

问题描述

我有一个像这样的现有 SQLite_table:

startdate  -   enddate
2018-01-01  -  2018-06-30
2018-07-01  -  2018-12-31
2019-01-01  -  2019-06-30
2019-07-01  -  2019-12-31
2020-01-01  -  2020-06-30
2020-07-01  -  2020-12-31
2021-01-01   - 2021-06-30

结果的 SQL 语句是什么;结果应该是:

2019-11-01  2020-12-31  // 60  Days difference
2020-01-01  2020-06-30  // 180 Days difference
2020-07-01  2020-12-31  // 180 Days difference
2021-01-01  2021-06-30  // 180 Days difference

'2019-11-01'通过我的 Android 应用程序中的搜索字段作为输入输入 要点是开头的小句点的输出/在我尝试“联合”的语句中插入第一个句点,它给了我一个错误。

如何通过查询来做到这一点?

我很感谢任何帮助

什么是 SQL 语句,什么时候应该返回从 '2019-11-01' 到 'now' 的数据

2019-11-01  2020-12-31  // 60  Days difference
2020-01-01  2020-06-30  // 180 Days difference
2020-07-01  2020-12-31  // 180 Days difference
2021-01-01  2021-02-16  // 46 Days difference ! ! 

谢谢

标签: sqlite

解决方案


您需要enddate小于或等于的所有行'2019-11-01'

SELECT MAX(startdate, '2019-11-01') startdate, enddate
FROM tablename
WHERE enddate >= '2019-11-01'

请参阅演示
结果:

开始日期 结束日期
2019-11-01 2019-12-31
2020-01-01 2020-06-30
2020-07-01 2020-12-31
2021-01-01 2021-06-30

编辑,对于你的第二个问题:

SELECT MAX(startdate, '2019-11-01') startdate, 
       MIN(enddate, CURRENT_DATE) enddate
FROM tablename
WHERE enddate >= '2019-11-01' AND startdate <= CURRENT_DATE

请参阅演示
结果:

开始日期 结束日期
2019-11-01 2019-12-31
2020-01-01 2020-06-30
2020-07-01 2020-12-31
2021-01-01 2021-02-16

推荐阅读