Bonjour à tous,
j'importe un fichier csv dans sqlite avec des dates au format 21/12/2020, je voudrait les passer en "%y/%m/%d" pour le tri mais j'ai toujours des difficulté de format avec datetime.
Auriez-vous une solution simple ?
Merci
Bonjour à tous,
j'importe un fichier csv dans sqlite avec des dates au format 21/12/2020, je voudrait les passer en "%y/%m/%d" pour le tri mais j'ai toujours des difficulté de format avec datetime.
Auriez-vous une solution simple ?
Merci
Bonjour,
Si vous utiliser la fonction sorted pour le tri de vos dates, vous n'êtes pas obligé de modifier le format de la date. Vous pouvez utiliser un callback de tri, en utilisant le paramètre key de la fonction sorted.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
merci je ne maîtrise pas tout mais ça me tri selon le jour,
alors que si je passe en format 2020-12-20 par exemple c'est nickel, c'est pour ça que je voudrait changer le format date.
merci
Voici un exemple,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 def callback(item): return [int(i) for i in reversed(item.split('/'))] dates = ["20/12/2015", "05/06/2008", "05/07/2008", "05/05/2008", "12/11/2000"] print(sorted(dates, key=callback))
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Salut,
21/12/2020 ou 2020/12/21 ne sont pas des "dates" mais des représentations de "dates" sous forme de chaines de caractères compréhensibles par des humains d'un milieu culturel donné.
Quand on programme, on va éviter d'utiliser des dates sous cette forme là: çà prend de la place et suivant la représentation comparer 2 dates devient "sportif". On utilise une représentation "canonique" en convertissant la chaine de caractère en objet "date" via .strptime(...).
On fait la même chose avec les encodings: dans le programme, on travaille avec de l'unicode et on fait des conversions pour les entrées sorties avec l'encoding qui va bien.
- W
re,
merci je comprends le principe mais je ne vois pas comment l'appliquer.
Par exemple avec ce code :
si je passe mes dates du fichier csv avant l'import en format 2016-12-1 ça fonctionnent mais je ne saisis pas selon quel ordre on doit utiliser .strptime pour ne pas toucher la date dans la table sql et la trier,
Code : Sélectionner tout - Visualiser dans une fenêtre à part cur.execute('''INSERT INTO TABLE (Date,Solde) SELECT Date,Solde FROM IMPORT EXCEPT SELECT Date,Solde FROM TABLE2 ORDER BY Date DESC''')
ou comment appliquer le tri sorted(dates, key=callback) en sql ?
Par ailleurs, j'ai lu et appliqué à la création de mes tables pour les champs "Date" timestamp, est-ce pertinent ou un simple "Date" TEXT est mieux ?
En vous remerciant pour vos solutions,
Bonjour,
Merci de donner le contexte depuis le départ...
Ma réponse n'est pas adaptée à votre problème.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Salut,
Je ne comprends pas comment vous essayez de l'appliquer.
Transformer en "dates" python via .strptime des dates sous forme de chaines de caractères est une question.
Stocker des "date"s python dans sqlite pour lui faire faire des tris, en est une autre.
Pour chacune, vous avez à écrire un petit exemple de code pour voir et comprendre comment çà se met en œuvre, après avoir lu la documentation et cherché un peu sur Internet.
- W
Bonjour et encore merci,
j'ai essayé d'être clair dans mon script,
je débute et je suis preneur pour toute observation.
cordialement,
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager