SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite група по/брой часове, дни, седмици, година

Бих гласувал за използването на времеви печати на Unix (брой секунди от „епохата“), като се има предвид, че те са удобни за изчисляване на диапазона и разбираеми от повечето стабилни библиотеки за дата и час.

SQLite предоставя няколко помощни функции за работа с времеви марки на Unix. Най-полезният тук ще бъде strftime .

Можете да вмъкнете текущото времеви печат на Unix, като използвате strftime('%s', 'now') във вашия INSERT.

По-късно, ако знаете конкретен времеви диапазон, който ви интересува, можете да изчислите минималните и максималните времеви отпечатъци за този диапазон и да изберете редове между тях:

SELECT * FROM data 
WHERE timestamp >= strftime('%s', '2012-12-25 00:00:00') 
AND timestamp < strftime('%s', '2012-12-25 01:00:00');

Или, ако предположим, че искате да преброите заявките за една година по месеци:

SELECT strftime('%m', timestamp), count(*) FROM Data
WHERE timestamp >= strftime('%s', '2012-01-01 00:00:00') 
AND timestamp < strftime('%s', '2013-01-01 00:00:00') 
GROUP BY strftime('%m', timestamp);

Чрез умно използване на опциите за формат strftime предоставя, вероятно можете да решите повечето от тези заявки доста бързо.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкнете времеви печат в базата данни чрез ContentValues

  2. Настройка на производителността на SQLite

  3. Как Substr() работи в SQLite

  4. Шифроване на данни в SQLite

  5. SQLiteAssetHelper:Не можа да се отвори база данни за писане (ще се опита само за четене)