2013-10-21 75 views
0

在我的應用程序中,我想使用當前月份的所有日期,我必須在其他查詢中使用所有日期才能加入。如何使用sqlite查詢獲取當前月份或指定月份的日期?

如果我能得到指定月份的日期意味着通過月份數字也比我沒有任何問題。

我需要使用查詢使用sqlite數據庫。 任何幫助將不勝感激。

+0

請先顯示您所說的數據庫和表格。 –

+0

@MajidDaeiNejad:我們不需要數據庫或表格,因爲我們可以通過內置函數來實現這一點。 –

回答

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之一。

2

引述my previous answer

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') 
+0

您好CL可以得到指定月份的日期嗎?我必須做出什麼改變。 –

+0

用當月開始的日期替換'now','month of',例如''2013-10-01''。 –

+0

我認爲,我必須爲此創建函數來傳遞本月開始的日期。目前,我已經創建了一個視圖作爲您的查詢。 –

相關問題