1. 程式人生 > >SQLite 按照日期分組

SQLite 按照日期分組

使用這個format ('%Y-%m-%d')來查詢對應的年月日的分組

查詢2015年的所有資料 

select*from mytable wherestrftime('%Y', datatime) = '2015'

查詢2015年9月的所有資料(注意格式一定要是yyyy-MM, 不能使用2015-9)

select*from mytable wherestrftime('%Y-%m', datatime) = '2015-09'

查詢2015年9月23號的所有資料同理推斷為

select*from mytable wherestrftime('%Y-%m-%d', datatime) = 

'2015-09-23'

以下這個語句是:取出月份,並加上2個月的查詢結果,滿足程式碼中迴圈的需要

select * from mytable where strftime('%m', datatime, '+2 months') = '12'

以下的資料就可以滿足按照年來進行分組查詢

SELECT count(*) from mytable  GROUP BY strftime('%Y',  datatime)

以下可以實現查詢資料庫表中有幾個不同的年份

 SELECT DISTINCT strftime('%Y',  TimeField)  as year from YourTable

  1. strftime時間字串格式化  
  2. %d dayofmonth: 00   
  3. %f fractional seconds: SS.SSS   
  4. %H hour: 00-24   
  5. %j dayofyear: 001-366   
  6. %J Julian day number   
  7. %m month: 01-12   
  8. %M minute: 00-59   
  9. %s seconds since 1970-01-01   
  10. %S seconds: 00-59   
  11. %w dayof week 0-6 with Sunday==0   
  12. %W week ofyear: 00-53   
  13. %Y year: 0000-9999   
  14. %%%   
  15. 以下結果是等價的  
  16. date(...) <
    ---> strftime('%Y-%m-%d', ...) 
  17. time(...) <---> strftime('%H:%M:%S', ...) 
  18. datetime(...) <---> strftime('%Y-%m-%d %H:%M:%S', ...) 
  19. julianday(...) <---> strftime('%J', ...) 
  20. 再看看修飾符:  
  21. 1. NNN days                         --加或減N天
  22. 2. NNN hours                        ----加或減N小時
  23. 3. NNN minutes                      --加或減N分鐘
  24. 4. NNN.NNNN seconds                 ----加或減N秒                         
  25. 5. NNN months                       --加或減N月
  26. 6. NNN years                        --加或減N年                         
  27. 7. start ofmonth--一月的開始的時間
  28. 8. start ofyear--一年開始的時間
  29. 9. start ofday--一天開始的時間
  30. 10. weekday N                       --檢視本週禮拜N是那天, 1,2,3,4,5,6,0分別代表禮拜一到禮拜天,禮拜天