Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    59

    differenza tra due date

    Ciao a tutti,
    Avrei bisogno di fare una differenza tra due date (mese e anno), se la differenza e' uguale o superiore a 11mesi fai tot, altrimenti niente.
    la prima data e' sul database (con nome tabella ditta e nome campo) , mentre l'altra dovrei prendere la data del server.

    io ho provato a fare cosi:

    SELECT PERIOD_DIFF( data , 'now()' ) from ditta;

    ma:
    in questo modo mi vengono fuori dei numeri che non capisco..
    (2408522)

    Potrei avere un indicazione per la giusta via?
    grazie
    #Software is like sex: it's better when it's free!! (indovinate di chi e'?)

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    194
    ti viene fuori il timestamp del periodo '2408522'. Cerca come trasformare il timestamp in data normale aaaa-mm-gg.
    Ciao

  3. #3
    Originariamente inviato da ardand
    ti viene fuori il timestamp del periodo '2408522'. Cerca come trasformare il timestamp in data normale aaaa-mm-gg.
    Ciao
    $dt = 2408522 ;
    echo data ( 'm/d/Y', $dt ) ;
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  4. #4


    PERIOD_DIFF(P1,P2)

    Returns the number of months between periods P1 and P2. P1 and P2 should be in the format YYMM or YYYYMM. Note that the period arguments P1 and P2 are not date values.

    mysql> SELECT PERIOD_DIFF(9802,199703);
    -> 11

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    59
    grazie intanto alle vostre risposte..
    ho provato a fare cosi':

    Codice PHP:
    $query "SELECT PERIOD_DIFF( '200703' , '200705' )";
    echo 
    date'm/d/Y'$query ); 
    per vedere se funzionava, senza andare a toccare il db..
    ma a video mi compare:

    Warning: date() expects parameter 2 to be long, string given in C:\Programmi\EasyPHP 2.0b1\www\elenco\data.php on line 11


    o dov'e' che sbaglio...??
    #Software is like sex: it's better when it's free!! (indovinate di chi e'?)

  6. #6
    Non ti funziona? That's strange.
    Prova così:

    Codice PHP:
    $query "200703";
    echo 
    date'm/d/Y'$query ); 

  7. #7
    Quella e' una procedura assolutamente nuova.

    una query la esegui sul database. Date() e' una funzione php che rende una stringa a partire da un unix timestamp. period_diff e' una funzione di MYSQL.

    con PERIOD_DIFF() tu ottieni direttamente il numero dei mesi tra due valori anno-mese

    codice:
    // qui  la tua connessione a mysql
    
    $query = "SELECT PERIOD_DIFF( 200703 , 200705 )"; 
    
    $res = mysql_query($query) or die(mysql_error());
    
    $row = mysql_fetch_row($res);
    
    echo $row[0];

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Originariamente inviato da KajinDetier
    Non ti funziona? That's strange.
    Prova così:

    Codice PHP:
    $query "200703";
    echo 
    date'm/d/Y'$query ); 
    Guarda che 200703 vuol dire anno 2007 mese 03 ....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Originariamente inviato da piero.mac
    Guarda che 200703 vuol dire anno 2007 mese 03 ....
    Oh, My bad, sorry. =)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    59
    Ok, perfetto.. o quasi..
    il confronto tra due date che inserisco lo fa' correttamente.

    ora pero' se provo a prendere un valore che e' sul database e a confrontarlo
    con l'anno e il mese attuale (prendo i dati dal server con la funzione now() )
    mi da' sempre 0
    Molto probabilmente sbaglio la funzione now() puo' essere?

    Codice PHP:
    $query "SELECT PERIOD_DIFF( 'now()' , 'data'  ) from ditta";

    $res mysql_query($query) or die(mysql_error());

    $row mysql_fetch_array($res);

    echo 
    $row[0]; 
    Praticamente ho una tabella,ditta, dove in una campo chiamato data
    c'e' una data in formato varchar (se metto il campo con valore data fa' ancora piu' casino..)
    e vorrei fare il confronto di ogni riga della data, in modo che se e' superiore o uguale a 11mesi manda una mail.


    #Software is like sex: it's better when it's free!! (indovinate di chi e'?)

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.