簡體   English   中英

從SQLITE數據庫中選擇唯一月份和年份

[英]Selecting Unique Months and Years From a SQLITE database

我在費用表中有一個名為(日期)的列,它在結構“2015-02-15”中顯示日期。 我想建立一個Distinct獨特月份和年份的列表,以便用戶可以選擇要顯示的月份。 我試過沒有任何運氣使用以下答案

"1" "1" "Food Shopping" "156"   "2015-01-15"
"2" "1" "Water" "200"   "2015-02-15"
"3" "2" "Car Maintenance"   "30"    "2014-12-15"
"4" "4" "Boobs" "200"   "2015-02-15"

理想情況下,我應該得到

December 2014
January 2015
February 2015

有人能指出我正確的方向。 謝謝。

您的date列格式正確,因此無需使用unixepoch修飾符。 只需將其從原始查詢中刪除:

SELECT CASE m 
       WHEN '01' THEN 'January' 
       WHEN '02' THEN 'Febuary' 
       WHEN '03' THEN 'March' 
       WHEN '04' THEN 'April' 
       WHEN '05' THEN 'May' 
       WHEN '06' THEN 'June' 
       WHEN '07' THEN 'July' 
       WHEN '08' THEN 'August' 
       WHEN '09' THEN 'September' 
       WHEN '10' THEN 'October' 
       WHEN '11' THEN 'November' 
       WHEN '12' THEN 'December' 
       END || ' ' || y AS dates
FROM 
(
  SELECT DISTINCT 
         strftime('%m', date) m,
         strftime('%Y', date) y
    FROM expenses
)
ORDER BY y, m

如果您可以使用ISO標准格式,您可以:

select distinct date(date, '%Y-%m')
from expenses;

如果沒有,您可以使用邏輯來獲取月份名稱:

select distinct date(date, '%Y') || ' ' ||
       (case when date(date, '%m') = '01' then 'January'
             . . .
             when date(date, '%m') = '12' then 'December'
        end)

哎呀,我把年份放在第一年,然后是月份。 如果你願意,可以反轉它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM