列出查询中的所有星期几

沙罗努

我正在尝试列出给定日期下一周的所有日子

例子:

如果今天是2019-09-24那么结果应该是:

DAY_OF_WEEK

2019-09-24
2019-09-25
2019-09-26
2019-09-27
2019-09-28
2019-09-29
2019-09-30

这是我想出的查询,我想知道是否有更优雅的方法来实现相同的结果:

SELECT date('now') AS DAY_OF_WEEK
UNION
SELECT date('now', '+1 day') AS DAY_OF_WEEK
UNION
SELECT date('now', '+2 day') AS DAY_OF_WEEK
UNION
SELECT date('now', '+3 day') AS DAY_OF_WEEK
UNION
SELECT date('now', '+4 day') AS DAY_OF_WEEK
UNION
SELECT date('now', '+5 day') AS DAY_OF_WEEK
UNION
SELECT date('now', '+6 day') AS DAY_OF_WEEK
去世

你的代码是正确的。
如果需要,您可以使用 aCTE只返回0to的数字6并从中选择要添加到当前日期的天数:

WITH days as (
  SELECT 0 AS day UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL 
  SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6
)
SELECT date('now', '+' || day || ' day') AS DAY_OF_WEEK FROM days

请参阅演示
或者用一个RECURSIVE CTE

WITH RECURSIVE days(day) AS (
  SELECT 0
  UNION ALL
  SELECT day + 1 FROM days
  LIMIT 7
)
SELECT date('now', '+' || day || ' day') AS DAY_OF_WEEK FROM days;

请参阅演示
结果:

| DAY_OF_WEEK |
| ----------- |
| 2019-09-24  |
| 2019-09-25  |
| 2019-09-26  |
| 2019-09-27  |
| 2019-09-28  |
| 2019-09-29  |
| 2019-09-30  |

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章