1

在我的应用程序中,我想使用当月的所有日期,我必须在其他查询中使用这些日期才能加入。

如果我可以通过传递月份编号来获取指定月份的日期,那么我也没有任何问题。

我需要使用使用 sqlite 数据库的查询来做到这一点。任何帮助将不胜感激。

4

2 回答 2

4

替代浓缩解决方案:

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 更多的计算。

于 2013-10-21T13:36:41.487 回答
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')
于 2013-10-21T11:59:19.007 回答