SQLite 按照日期分组

来源:互联网 发布:怪物猎人x数据库 编辑:程序博客网 时间:2024/06/06 06:45


使用这个format ('%Y-%m-%d')来查询对应的年月日的分组

查询2015年的所有数据 

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

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

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

查询2015年9月23号的所有数据同理推断为

select * from mytable where strftime('%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.   
  3. %d day of month: 00   
  4. %f fractional seconds: SS.SSS   
  5. %H hour: 00-24   
  6. %j day of year: 001-366   
  7. %J Julian day number   
  8. %m month: 01-12   
  9. %M minute: 00-59   
  10. %s seconds since 1970-01-01   
  11. %S seconds: 00-59   
  12. %w day of week 0-6 with Sunday==0   
  13. %W week of year: 00-53   
  14. %Y year: 0000-9999   
  15.   
  16. %%%   
  17.   
  18. 以下结果是等价的  
  19. date(...) <---> strftime('%Y-%m-%d', ...)   
  20. time(...) <---> strftime('%H:%M:%S', ...)   
  21. datetime(...) <---> strftime('%Y-%m-%d %H:%M:%S', ...)   
  22. julianday(...) <---> strftime('%J', ...)   
  23.   
  24. 再看看修饰符:  
  25.   
  26. 1. NNN days                         --加或减N天  
  27. 2. NNN hours                        ----加或减N小时  
  28. 3. NNN minutes                      --加或减N分钟  
  29. 4. NNN.NNNN seconds                 ----加或减N秒                           
  30. 5. NNN months                       --加或减N月  
  31. 6. NNN years                        --加或减N年                           
  32. 7. start of month                   --一月的开始的时间  
  33. 8. start of year                    --一年开始的时间  
  34. 9. start of day                     --一天开始的时间  
  35. 10. weekday N                       --查看本周礼拜N是那天, 1,2,3,4,5,6,0分别代表礼拜一到礼拜天,礼拜天

0 0