Obtenez des enregistrements d'un mois spécifique en utilisant SQLite
Question
Comment pourrais-je écrire une requête SQLite pour sélectionner tous les enregistrements d'un mois précis? Mes dates sont stockées sous forme de timestamp UNIX .
code PHP est autorisé dans votre solution si elle est nécessaire. requêtes SQLite2 compatibles uniquement, s'il vous plaît. :)
La solution
Si vous souhaitez ensuite une requête efficace, vous devez utiliser ENTRE:
SELECT *
FROM Table1
WHERE date BETWEEN $start AND $end
Où start
et end
sont les unix pour le début horodatages du mois et la fin du mois. Ceux-ci peuvent être calculées en utilisant PHP mktime et envoyé en tant que paramètres.
Autres conseils
Utilisation:
SELECT *
FROM TABLE
WHERE DATETIME(your_unix_timestamp_col, 'unixepoch') BETWEEN YYYY-MM-DD
AND YYYY-MM-DD
Remplacez la YYYY-MM-DD
les dates que vous désirez. Voir la page de référence pour d'autres formats pris en charge.
Référence:
Sans calcul jour dernier mois
SELECT *
FROM table
WHERE strftime('%Y-%m',date(unix_timestamp,'unixepoch','localtime')) = '2010-03'