Forum
>>
Programmazione Python
>>
Database
>>
Confrontare date con Sqlite
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da trescon |
2024-09-07 14:37:55 - Confrontare date con Sqlite
|
Buongiorno a tutti, ogni tanto torno con qualche "problema"; quelle di oggi coinvolge il confronto fra date.
Io ho un archivio che mi viene fornito che ha la date cosi composte: 07/09/2024. Nelle varie funzioni di confronto x query ho visto esempi solo con date: 2024-09-07 Come potrei fare il confronto con le date fornite ? Dovrei scomporre la data e ricomporla all'americana per poi fare il confronto ? O sarebbe meglio rilavorare tutto il file .csv convertendo tutte le date e poi in un secondo tempo eseguire la query di confronto ? Il file di compone di 16 colonne per un minimo di almeno 50.000 righe con possibilità di arrivo alle 70/80.000. Come potrei ottimizzare al meglio la scrematura per un range di date ? Grazie ------
Alberto |
|
Scritto da nuzzopippo |
2024-09-07 16:43:00 - Re: Confrontare date con Sqlite
|
Certo sai giò che sqlite ha uno scarso supporto per i dati temporali ... però non è difficile trattare direttamente stringhe con dati in formato "dd/mm/aaaa", basta utilizzare la funzione sqlite substr e creare una stringa ordinata per anno-mese-giorno ... p.e, ho creato una semplicissima tavola con date di eventi alla rinfusa, per poi ordinarli e selezionare una "data limite" utilizzando tali considerazioni, vedi sotto una sessione in shell sqlite :
sqlite> .schema eventi CREATE TABLE eventi ( data TEXT, evento TEXT); sqlite> select * from eventi; 25/06/1876|battaglia del Little Bighorn 06/04/1453|inizio assedio Costantinopoli 03/08/1492|Cristoforo Colombo parte sa Palos 06/06/1944|Sbarco in Normandia sqlite> SELECT * FROM eventi ...> ORDER BY (substr(data, 7, 4) || '-' || substr(data, 4, 2) || '-' || substr(data, 1, 2)); 06/04/1453|inizio assedio Costantinopoli 03/08/1492|Cristoforo Colombo parte sa Palos 25/06/1876|battaglia del Little Bighorn 06/06/1944|Sbarco in Normandia sqlite> SELECT * FROM eventi ...> WHERE (substr(data, 7, 4) || '-' || substr(data, 4, 2) || '-' || substr(data, 1, 2)) > '1500-01-01'; 25/06/1876|battaglia del Little Bighorn 06/06/1944|Sbarco in Normandia sqlite> Venendo al Tuo "ottimizzare", non ne ho idea, non avendo presenti tanto i dati quanto il contesto ... certo che sarebbe bene registrare i dati temporali direttamente secondo le modalità previste in sqlite, semplificherebbe le query. CIAO Fatti non foste a viver come bruti... |
Pagina: 1
Esegui il login per scrivere una risposta.