在我的应用程序中,我想使用当前月份中我必须在其他查询中使用的所有日期来加入。
如果我可以通过传递月份数来获取指定月份的日期,那么我也没有任何问题。
我需要使用sqlite数据库进行查询。 任何帮助将不胜感激。
答案 0 :(得分:2)
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')
答案 1 :(得分:2)
替代精简解决方案:
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 one。