Ik zou stemmen voor het gebruik van Unix-tijdstempels (aantal seconden sinds het "tijdperk"), aangezien ze handig zijn voor bereikberekening en worden begrepen door de meest robuuste datum-tijdbibliotheken.
SQLite biedt een aantal hulpfuncties voor het werken met Unix-tijdstempels. De meest bruikbare hier is strftime
.
U kunt de huidige Unix-tijdstempel invoegen met strftime('%s', 'now')
in uw INSERT.
Als u later een bepaald tijdbereik kent waarin u geïnteresseerd bent, kunt u de minimum- en maximumtijdstempels voor dat bereik berekenen en rijen ertussen selecteren:
SELECT * FROM data
WHERE timestamp >= strftime('%s', '2012-12-25 00:00:00')
AND timestamp < strftime('%s', '2012-12-25 01:00:00');
Of, stel dat u de verzoeken van een jaar per maand wilt tellen:
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);
Door slim gebruik te maken van de formaatopties strftime
biedt, kunt u de meeste van die vragen waarschijnlijk vrij snel oplossen.