SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Grupuj SQLite według/licz godziny, dni, tygodnie, rok

Głosowałbym za używaniem uniksowych znaczników czasu (liczba sekund od „epoki”), biorąc pod uwagę, że są one wygodne do obliczania zakresów i zrozumiałe dla najbardziej niezawodnych bibliotek daty i czasu.

SQLite udostępnia kilka funkcji pomocniczych do pracy z uniksowymi znacznikami czasu. Najbardziej użytecznym tutaj będzie strftime .

Możesz wstawić bieżący uniksowy znacznik czasu, używając strftime('%s', 'now') we WKŁADCE.

Później, jeśli znasz konkretny zakres czasu, który Cię interesuje, możesz obliczyć minimalne i maksymalne znaczniki czasu dla tego zakresu i wybrać między nimi wiersze:

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

Albo załóżmy, że chcesz policzyć roczne żądania według miesiąca:

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);

Dzięki sprytnemu wykorzystaniu opcji formatu strftime zapewnia, prawdopodobnie będziesz w stanie dość szybko rozpracować większość tych zapytań.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabela bazy danych Android SQLite nie jest tworzona

  2. Android:onUpgrade nie wywołuje przy aktualizacji bazy danych

  3. SQLite JSON_OBJECT()

  4. SQLite JSON_PATCH()

  5. Czy identyfikator zasobu zmienia się przy każdym uruchomieniu aplikacji?