Visualizzazione dei risultati da 1 a 5 su 5

Discussione: ora mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250

    ora mysql

    salve a tutti
    ho appena trasferito un sito su un nuovo server linux con mysql/phpmyadmin.
    Ho impostato l'ora del server in (GMT+02.00) Europe/Rome e mi da l'ora giusta.
    Ma se vado su phpmyadmin e faccio una query (SELECT NOW())
    mi trovo l'ora totalmente sbagliata.
    Inoltre ho notato che quando inserisco un articolo nel database, il campo data (timestamp automatica dell'ora) č sbagliato.

    Dove si aggiorna l'ora del database? Qualcuno puā aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469

    Re: ora mysql

    Originariamente inviato da musghs
    salve a tutti
    ho appena trasferito un sito su un nuovo server linux con mysql/phpmyadmin.
    Ho impostato l'ora del server in (GMT+02.00) Europe/Rome e mi da l'ora giusta.
    Ma se vado su phpmyadmin e faccio una query (SELECT NOW())
    mi trovo l'ora totalmente sbagliata.
    Inoltre ho notato che quando inserisco un articolo nel database, il campo data (timestamp automatica dell'ora) č sbagliato.

    Dove si aggiorna l'ora del database? Qualcuno puā aiutarmi?
    esistono varie funzioni per i timestamp, in particolare
    NOW() (con la correzione) e UTC_DATETIME() (senza)

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    ciao, forse nn hai capito il mio problema.
    Ho un server con un ora impostata corretta (Europe/Rome).
    Se vado in mysql e faccio un SELECT NOW(); non mi trovo l'ora del server ma un'ora sbagliata, indietro di 10 ore.
    Come faccio ad aggiornare l'ora di mysql?

    Ho provato SET GLOBAL time_zone = SYSTEM;
    ma non mi va.

  4. #4
    Utente di HTML.it L'avatar di vnt54
    Registrato dal
    Mar 2009
    Messaggi
    500
    Ho provato in questo istante e la query mi restituisce la data perfetta,non
    č che hai l'orologio del sistema indietro?
    Sono stato nella terra della paura e dei vampiri...in transilvania?NO!..in Banca!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da musghs
    ciao, forse nn hai capito il mio problema.
    Ho un server con un ora impostata corretta (Europe/Rome).
    Se vado in mysql e faccio un SELECT NOW(); non mi trovo l'ora del server ma un'ora sbagliata, indietro di 10 ore.
    Come faccio ad aggiornare l'ora di mysql?

    Ho provato SET GLOBAL time_zone = SYSTEM;
    ma non mi va.
    io ho capito benissimo, e ti ribadisco che esistono due funzioni mysql.

    NOW() che ritorna l'ora CORRETTA (+1, +2 ore etc), presa dal time_zone per capirci e utc_timestamp
    per quella non corretta.

    Ecco un esempio che mi pare palese.
    codice:
    mysql> select now(),utc_timestamp();
    +---------------------+---------------------+
    | now()               | utc_timestamp()     |
    +---------------------+---------------------+
    | 2011-10-04 09:36:08 | 2011-10-04 07:36:08 |
    +---------------------+---------------------+
    1 row in set (0.00 sec)
    Devi verificare nel caso
    codice:
    mysql> show variables like '%time%';
    +---------------------------------------+-------------------------------+
    | Variable_name                         | Value                         |
    +---------------------------------------+-------------------------------+
    ...
    | system_time_zone                      | ora legale Europa occidentale |
    | time_zone                             | SYSTEM                        |
    ...
    +---------------------------------------+-------------------------------+
    26 rows in set (0.00 sec)
    Cosė vedi "come" ragiona
    codice:
    mysql>  SELECT @@global.time_zone, @@session.time_zone;
    +--------------------+---------------------+
    | @@global.time_zone | @@session.time_zone |
    +--------------------+---------------------+
    | SYSTEM             | SYSTEM              |
    +--------------------+---------------------+
    1 row in set (0.00 sec)

    Se vuoi cambiare le timezone ti serve avercele, si scaricano da qui
    http://downloads.mysql.com/general/t...010l_posix.zip
    blocchi il server, estrai lo zip dentro la cartella dei dati e riavvii il server.
    A quel punto puoi dare qualcosa tipo
    codice:
    SET SESSION time_zone = 'Africa/Accra';
    verifica con la select precedente se OK

    Ecco un esempino fatto or ora dove setto a +11 la sessione
    codice:
    mysql> set session time_zone='Etc/GMT+11';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SELECT @@global.time_zone, @@session.time_zone;
    +--------------------+---------------------+
    | @@global.time_zone | @@session.time_zone |
    +--------------------+---------------------+
    | SYSTEM             | Etc/GMT+11          |
    +--------------------+---------------------+
    1 row in set (0.00 sec)
    
    mysql> select now(),utc_timestamp();
    +---------------------+---------------------+
    | now()               | utc_timestamp()     |
    +---------------------+---------------------+
    | 2011-10-03 20:49:40 | 2011-10-04 07:49:40 |
    +---------------------+---------------------+
    1 row in set (0.00 sec)

    Infine i nomi li trovi in
    mysql.time_zone_name.name

    codice:
    mysql> select name from mysql.time_zone_name limit 10;
    +--------------------+
    | name               |
    +--------------------+
    | Africa/Abidjan     |
    | Africa/Accra       |
    | Africa/Addis_Ababa |
    | Africa/Algiers     |
    | Africa/Asmara      |
    | Africa/Asmera      |
    | Africa/Bamako      |
    | Africa/Bangui      |
    | Africa/Banjul      |
    | Africa/Bissau      |
    +--------------------+
    10 rows in set (0.00 sec)
    Spero di essere stato esaustivo

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.