Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Formattazione data in mysql

    Buongiorno ragazzi, ho un problema con una query, e ringrazio chiunque mi possa aiutare.

    Dunque ho una tabella in mysql con un campo testuale (purtroppo era una tabella già piena di dati convertita da access in mysql e non potevo rischiare di perdere i dati durante l'importazione)che però contiene la data e l'ora così :

    Codice PHP:
    12/05/2014 16:58:38 
    Adesso devo estrarre delle date che hanno 30 giorni meno della data corrente. ho provato in questo modo ma non ho avuto riscontro:

    Codice PHP:
    SELECT riparazioni.datarientroriparazioni.idstatoriparazioni.idtipoassistenzariparazioni.datauscitariparazioni.idnegozionegozi.idnegozionegozi.negozioriparazioni.prodottoriparazioni.nschedaFROM riparazioninegoziWHERE CURRENT_DATE( ) - INTERVAL 30 DAY DATE_FORMATriparazioni.datarientro,  '%d/%m/%Y %H:%i:%s' )AND riparazioni.datauscita =  ''AND riparazioni.datarientro !=  ''AND negozi.idnegozio riparazioni.idnegozioAND riparazioni.idtipoassistenza =  '3'ORDER BY idriparazione DESC 
    Come posso risolvere grazie a tutti in anticipo

    Dimenticavo, ho provato ad estrarre dal database solo le date e l'ora in questo modo

    DATE_FORMAT( datarientro, '%d/%m/%Y %H:%i:%s' )
    mi da tutti i record, di mysql ma la data visualizzata è null
    Ultima modifica di Werwolfe; 27-06-2014 a 03:53

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Campo testuale, per carità. Aggiungi una colonna alle tabelle e ribaltaci dentro le date testuali convertendole in date vere. Dopo fai tutti i calcoli che ti pare.

  3. #3
    Purtroppo il database è molto popolato, mi hanno dato pacco così , nn si può risolvere in nessun modo, perchè? se adesso converto campo perdo tutti i dati, come posso fare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161
    il fatto che sia molto popolato non cambia niente, al massimo ci metterai un po' di più tempo...
    - Aggiungi un campo alla tabella
    - Fai una funzione php che prende ogni riga della tabella e converte la data
    - elimina il campo vecchio

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    "Aggiungi una colonna", cosa c'è di poco chiaro?
    E non ti serve nessuna funzione php, basta un'istruzione sql per convertire con STR_TO_DATE()

  6. #6
    Grazie a tutti per le risposte, ho risolto convertendo in access la data, cambiamo la data del orologio di sistema, ora il mio campo è di tipo datetime

    ma cmq la query non funziona

    Codice PHP:
    SELECT riparazioni.idstatoriparazioni.datarientroriparazioni.idtipoassistenzariparazioni.datauscitariparazioni.idnegozionegozi.idnegozionegozi.negozioriparazioni.prodottoriparazioni.nschedaFROM riparazioninegoziWHERE datarientro >= CURRENT_DATE AND datarientro >= CURDATE() AND datarientro <= CURDATE() - interval 30 DAYAND riparazioni.datauscita =  ''AND riparazioni.datarientro !=  ''AND negozi.idnegozio riparazioni.idnegozioAND riparazioni.idtipoassistenza =  '3'ORDER BY idriparazione DESC 
    in cosa sbaglio?
    Ultima modifica di Werwolfe; 27-06-2014 a 15:27

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Sbagli a scrivere "la query non funziona" invece di spiegare cosa succede.
    Se dovessi giudicare dal codice che hai postato direi che mancano un bel po' di spazi vuoti, ma bisogna poi vedere se la query che esegui davvero è quella

  8. #8
    Così funziona


    SELECT riparazioni.idstato, riparazioni.datarientro, riparazioni.idtipoassistenza, riparazioni.datauscita, riparazioni.idnegozio, negozi.idnegozio, negozi.negozio, riparazioni.prodotto, riparazioni.nscheda
    FROM riparazioni, negozi
    WHERE datarientro <= CURRENT_DATE
    AND datarientro <= CURDATE( )
    AND datarientro <= CURDATE( ) - INTERVAL 90
    DAY
    AND riparazioni.datarientro != '000-00-00 00:00:00'
    AND riparazioni.datauscita = ''
    AND riparazioni.datarientro != ''
    AND negozi.idnegozio = riparazioni.idnegozio
    AND riparazioni.idtipoassistenza = '1'
    ORDER BY idriparazione DESC

    Grazie a tutti per le risposte

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.