Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128

    convertire una data su una query

    devo fare una query di questo tipo

    codice:
    mysql_query("DELETE FROM $db_utenti_online WHERE ultima_attivita+$durata_ses < date('U')") or die("Errore alla linea ".__LINE__.": ".mysql_error()) ;
    dove però la colonna "ultima_attivita" salva le date nel formato anno-mese-giorno ora-minuto-secondo e $durata_ses è espressa in secondi.

    come faccio a far funzionare la query?.. cioè come posso far si che "ultima_attivita" sia espressa in secondi?


    non so se sono stato chiaro


    grazie e scusate

  2. #2
    se tu ti salvassi a database il mktime invece della data... http://www.php.net/manual/en/function.mktime.php potresti allora credo fare una semplice operazione ^_^

  3. #3
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da goikiu
    se tu ti salvassi a database il mktime invece della data... http://www.php.net/manual/en/function.mktime.php potresti allora credo fare una semplice operazione ^_^
    e si lo so... però volevo sapere se si poteva fare senza andare a modificare il modo in cui viene salvata...

  4. #4

  5. #5
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da nicola75ss
    http://dev.mysql.com/doc/refman/5.1/...unix-timestamp
    grazie..

    un'altra domanda sempre riguardante le date...

    allora..

    ho creato un campo di tipo TIMESTAMP su phpmyadmin

    ora provo ad inserirci dentro una data così date("U") perchè non va?...

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Non hai bisogno di passare l'unix timestamp tramite la funzione date() di php visto che puoi ricavarlo direttamente tramite mysql

    select unix_timestamp()

  7. #7
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da nicola75ss
    Non hai bisogno di passare l'unix timestamp tramite la funzione date() di php visto che puoi ricavarlo direttamente tramite mysql

    select unix_timestamp()
    mm ok.. ma non capisco perchè non funziona lo stesso.. allora impostando timestamp come tipo di campo sul database mi mostra come valore predifinito CURRENT_TIMESTAMP e nel record me lo scrive così 0000-00-00 00:00:00 e non riesco ad aggiornarlo come mai??..

    ho questo:

    codice:
    mysql_query("REPLACE INTO $db_utenti_online VALUES('" . session_id() . "', '" . $row['id_utente'] . "', 'unix_timestamp()')") or die("Errore alla linea ".__LINE__.": ".mysql_error()) ;
    ma il campo della data rimane sempre 0000-00-00 00:00:00 .. tutto si aggiorna tranne la data

    dove sbaglio??

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Sei partito con una query di delete e ora posti un replace.

    Procediamo con ordine.
    Non è nemmeno necessario ricorrere allo unix_timestamp. Puoi tranquillamente sommare un intervallo di tempo al tuo campo datetime.

    Es.

    select now() + interval 120 second

    (sostituisci now col tuo campo) e poi fai tutti i confronti che vuoi per vedere se eccede o meno un'altra data/ora.

  9. #9
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da nicola75ss
    Sei partito con una query di delete e ora posti un replace.

    Procediamo con ordine.
    Non è nemmeno necessario ricorrere allo unix_timestamp. Puoi tranquillamente sommare un intervallo di tempo al tuo campo datetime.

    Es.

    select now() + interval 120 second

    (sostituisci now col tuo campo) e poi fai tutti i confronti che vuoi per vedere se eccede o meno un'altra data/ora.
    scusa.. sono le due query su cui sto lavorando...

    il mio problema è che la data sul database non riesco ad aggiornarla e quindi poi non riesco nemmeno a confrontarla.. cioè.. impostando come tipo di campo timestamp, mi rimane sempre 0000-00-00 00:00:00 .. come faccio a modificarlo? cioè.. con date("U") non va.. con unix_timestamp() nemmeno.. come faccio??..

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ti posto un semplice esempio di query di aggiornamento

    update tabella set campo_datetime = campo_datetime + interval 120 second where id = 1

    che incrementerà di 2 minuti il tuo valore.

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.