在我的应用程序中,我想使用当月的所有日期,我必须在其他查询中使用这些日期才能加入。
如果我可以通过传递月份编号来获取指定月份的日期,那么我也没有任何问题。
我需要使用使用 sqlite 数据库的查询来做到这一点。任何帮助将不胜感激。
替代浓缩解决方案:
SELECT DATE(JULIANDAY('NOW', 'START OF MONTH')+d1*9+d2*3+d3) AS Days FROM (
SELECT 0 AS d1 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3
) JOIN (
SELECT 0 AS d2 UNION SELECT 1 UNION SELECT 2
) JOIN (
SELECT 0 AS d3 UNION SELECT 1 UNION SELECT 2
) WHERE STRFTIME('%m', Days)=STRFTIME('%m', 'NOW') ORDER BY Days;
请注意,此解决方案需要比 @CL 更多的计算。
引用我之前的回答:
SELECT date('now', 'start of month') AS Date
UNION ALL
SELECT date('now', 'start of month', '+1 days')
UNION ALL
SELECT date('now', 'start of month', '+2 days')
UNION ALL
...
UNION ALL
SELECT date('now', 'start of month', '+27 days')
UNION ALL
SELECT date('now', 'start of month', '+28 days') WHERE strftime('%m', 'now', 'start of month', '+28 days') = strftime('%m', 'now')
UNION ALL
SELECT date('now', 'start of month', '+29 days') WHERE strftime('%m', 'now', 'start of month', '+29 days') = strftime('%m', 'now')
UNION ALL
SELECT date('now', 'start of month', '+30 days') WHERE strftime('%m', 'now', 'start of month', '+30 days') = strftime('%m', 'now')