J'essaie d'exécuter une requête qui retournera les lignes triées par ordre décroissant de la date du jour.Trouver la ville plus proche
Voici quelques données:
| date | |----------| |2012-12-02| |2012-12-04| |2012-12-10| |2012-12-15| |2012-12-29| |2013-01-02| |2013-01-04|
Voici ma question:
SELECT * FROM days
ORDER BY ABS(strftime("%s", date) - strftime("%s", 2012-12-28)) ASC
Il retourne uniquement les lignes dans le même ordre que je posté ci-dessus, je veux obtenir un résultat comme
| date | |----------| |2012-12-29| |2013-01-02| |2013-01-04| |2012-12-15| |2012-12-10| |2012-12-04|
Mon champ de date est une chaîne au format yyyy-MM-dd
(il y a une raison pour laquelle je ne le stocke pas en tant que horodatage). Qu'est-ce que je fais mal?
Il y a toujours une raison * pour ne pas stocker comme un horodatage, mais il est généralement mal :) – Gerrat
Ma raison est la suivante, le dispositif de cette base de données est traverserons timezones souvent, mais je veux la date de ne soit pas affecté par cela. Si le 2012-12-29 est stocké dans le fuseau horaire de PST et qu'il est ensuite envoyé au Japon, je veux quand même qu'il sorte le 2012-12-29, pas le 2012-12-30 comme il le serait avec un horodatage. Je ne peux pas stocker d'informations de fuseau horaire dans la base de données, car il ne sera pas disponible. – Ralgha
Pouvez-vous essayer de vérifier si les deux dates de comparaison sont dans le même format? Sachez que c'est idiot mais essayez quand même. – GautamJeyaraman