Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [MySQL & PHP] Query Con Datediff

    Ciao a tutti,

    io avrei bisogno di prendere il valore in giorni tra due date nel database processando la query in mysql ma non sono riuscito:

    questo quello che sto provando ma non va!!

    Codice PHP:
    SELECT *, AVG(DATEDIFF(day,'quote_to','quote_from')) AS tot FROM tb_manager_quotetb_manager_users WHERE tb_manager_users.usr_id tb_manager_quote.usr_id 
    Spero di essermi spiegato al meglio!


    Saluti Sbarboff
    PHP THE BEST

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    Se per "valore" in giorni intendi il rnumero di giorni dato dalla differenza di due date, fai semplicemente così:
    codice:
    SELECT *, DATEDIFF('quote_to','quote_from') AS tot 
    FROM tb_manager_quote, tb_manager_users 
    WHERE tb_manager_users.usr_id = tb_manager_quote.usr_id

  3. #3
    Allora facendo la query :

    Codice PHP:
    SELECT *, DATEDIFF('quote_to','quote_from') AS tot 
    FROM tb_manager_quote
    tb_manager_users 
    WHERE tb_manager_users
    .usr_id tb_manager_quote.usr_id 
    mi restituisce tot NULL

    e non capisco

    ho provato a mettere le date in vari formati :

    2010-11-31
    31-11-2010
    2010-31-11

    Sempre NULL Dove sbaglio?
    PHP THE BEST

  4. #4
    SELECT *, DATEDIFF('quote_to','quote_from') AS tot

    se quote_to e quote_from sono nomi di campo devi togliere le apici altrimenti i due nomi sono valutati come stringhe e logicamente rendera' NULL.

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

  5. #5
    un esempio vale più di mille parole:
    codice:
    select datediff('2011-02-12','2011-02-10') as tot;
    controlla solo che i due campi siano valorizzati con qualcosa di valido...

  6. #6
    Originariamente inviato da Sbarboff2005
    ho provato a mettere le date in vari formati :

    2010-11-31
    31-11-2010
    2010-31-11
    Hai provato a cambiare il formato delle date in MySql??!!

    ... se sono campi DATE o DATETIME... questa cosa è impossibile... secondo me il problema sta lì

  7. #7
    Ok risolto togliendo gli apici:

    Codice PHP:
    SELECT *, DATEDIFF('quote_to','quote_from') AS tot  
    FROM tb_manager_quote
    tb_manager_users  
    WHERE tb_manager_users
    .usr_id tb_manager_quote.usr_id 
    Pero io vorrei se possibile avere la data in questo modo:

    attualmente nel db lo messa cosi

    Y - m - d

    2011-12-31

    é possibile averla cosi:

    d , m , Y

    31-12-2011

    e farli calcorare sempre i giorni tra le due date?
    PHP THE BEST

  8. #8
    DATE_FORMAT di mysql per l'estrazione

    ma all'interno del db i formati sono vincolati e non puoi alterare l'ordine altrimenti ottieni risultati imprevedibili o una sequanza di 0 (zero)

  9. #9
    ok se ho capito bene nel database deve stare 2011-12-31

    ma per visualizzare da php posso modificare il formato ?
    PHP THE BEST

  10. #10
    ripetita iuvant
    DATE_FORMAT di mysql per l'estrazione
    SELECT DATE_FORMAT('2011-02-17', '%d - %m - %Y')


    ---------------
    se invece vuoi selezionare la data così come sta nel db e convertirla in un formato user friendly tramite php devi smanettare con la funzione strtotime(), date(), time()... etc etc
    ad esempio:

    echo date('d - m - Y',strtotime('2011-02-17 16:40:00'));

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