Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150

    Problema date tra php e mysql

    Ciao a tutti giovini... vi spiego subito il problema..

    Allora devo fare una ricerca in un DB dove la data è scritta in formato DDMMAAAA (ad esempio 03092009) e c'è una particolarità, il campo è settato come varchar...

    la ricerca non è su una sola data, bensì su due, ovvero la data nel DB deve trovarsi tra le due inserite nel Form della pagina precedente... il problema è che non si riesce a fare un raffronto preciso, perchè la data, essendo varchar, al momento dell'interrogazione viene vista come intero e non come data effettiva... quindi ad esempio 03092009, rispetto a 03092005, è di sole 4 unità più grande e non di 4 anni come dovrebbe essere...

    come posso ovviare a questo problema ?
    Ci sto perdendo la testa da stamattina... peffavore, datemi n'aiuto...

    Saluti
    Vito
    E come disse la Pannocchia...
    "non mi batterai Mais..."

  2. #2
    beh, diciamo che sarebbe tutto da rifare. Ovviamente non si potrà per svariate ragioni.
    Allora andrei di brutal force.

    1. utilizzerei la funzione substr per dividere la data in giorni-mesi-anni
    2. passerei tramite mktime per ottenere il timestamp e farei i confronti con quello.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    Codice PHP:

    function TimestampReturn($data)
    {
        
    $d substr($data02);
        
    $m substr($data24);
        
    $y substr($data48);
        
    $result mktime(0,0,0,$m,$d,$y);
        return 
    $result;

    una cosa così
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Ciao maurizio, ti ringrazio per la risposta, il problema è un altro, il Database non lo posso toccare... quindi per quanto riguarda la scrittura sullo stesso, sono con le mani legate...
    E come disse la Pannocchia...
    "non mi batterai Mais..."

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    ho provato a fare una cosa del genere...

    Codice PHP:
    "SELECT TipoRecord, TipoDocumento, Societa, DATE_FORMAT(DataDocumento, '%d%m%Y') WHERE DATE_FORMAT(DataDocumento, '%d%m%Y') BETWEEN '".$date_init_doc."' AND '".$date_end_doc."'" 
    ma non va, mi da

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\WM\www\fatt\ammdoc.php on line 133

    e non so proprio cosa possa essere...

    Edit: '%d%m%Y' (questa è la versione giusta proprio perchè la data nel DB non ha separatori come - o /
    E come disse la Pannocchia...
    "non mi batterai Mais..."

  6. #6
    Non devi toccare il DB, lo devi solo leggere...

    Leggi le due date, e le passi a quella funzione che ti ha suggerito Maurizio.

    Successivamente fai le operazioni che devi fare (addizione, sottrazione)...

    Chiaro?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    ciao ragazzi, scusate il silenzio radio ma ho riavuto la connessione solo oggi..

    comunque ho risolto sfondando le recchie a chi ha progettato il db e dicendo che doveva cambiare per forza il formato della data...

    Ringrazio comunque chi mi ha risposto... ^_^

    alla prossima...
    E come disse la Pannocchia...
    "non mi batterai Mais..."

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 © 2025 vBulletin Solutions, Inc. All rights reserved.