Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22
  1. #11
    Originariamente inviato da Mixio
    Quindi ritorniamo al punto di partenza.
    Il problema è che se io metto SET time_zone = '-05:00' lui mi sottrae 7 ore e non 5!
    -5 NON significa "sottrai 5 ore al valore che vedo adesso". Roma è nel timezone +1, se c'è l'ora legale il conto torna...
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  2. #12
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    Originariamente inviato da in the web
    -5 NON significa "sottrai 5 ore al valore che vedo adesso". Roma è nel timezone +1, se c'è l'ora legale il conto torna...
    Ok benissimo, quindi non tengo conto su Roma ma su Greenwich, rimane solo la gestione dell'ora legale che dovrò farmi a mano da quello che capisco.
    Mi ero illuso che MySql gestisse il tutto in automatico.

  3. #13
    Proprio perché gestisce tutto in automatico, se c'è l'ora legale ti restituisce l'ora legale.

    Sei sicuro di volere l'ora solare in una zona del mondo dove stanno usando quella legale? Pensaci bene. Se per esempio il tuo è un sito, chi si collega da Miami si aspetta che l'ora è quella che dice il suo orologio, non quella solare che in questo momento non è in vigore!

    Se proprio vuoi farlo, allora non hai bisogno della gestione della timezone di MySQL. Se sai che la differenza è di 5 ore, fai campo_data - INTERVAL 5 HOUR.
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  4. #14
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    Originariamente inviato da in the web
    Proprio perché gestisce tutto in automatico, se c'è l'ora legale ti restituisce l'ora legale.

    Sei sicuro di volere l'ora solare in una zona del mondo dove stanno usando quella legale? Pensaci bene. Se per esempio il tuo è un sito, chi si collega da Miami si aspetta che l'ora è quella che dice il suo orologio, non quella solare che in questo momento non è in vigore!

    Se proprio vuoi farlo, allora non hai bisogno della gestione della timezone di MySQL. Se sai che la differenza è di 5 ore, fai campo_data - INTERVAL 5 HOUR.
    Beh allora sono io che continuo a capire, forse servirebbe un esempio pratico.
    Il mio problema ormai l'hai capito, da quello che abbiamo dedotto imposto il timezone a -3 e ottengo il fuso di miami perchè noi per ora siamo a +2 e fin qui ci siamo, quello che non capisco è che appena noi passiamo a +1 dov'è che tutto rimane in automatico?

  5. #15
    Toglimi un ultimo dubbio poi ti rispondo. Fai così:

    SELECT NOW();
    SET @@session.time_zone = '-05';
    SELECT NOW();

    ...e dimmi cosa ti restituisce (tutti e due i risultati mi servono)
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  6. #16
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    l'orario UTC non è influenzato da ora legale. E' quello e basta. Tutti gli altri aggiustamenti del caso avvengono in base alla time_zone e all'eventuale ora legale/solare del luogo. Per intenderci, adesso sono le 0216 CET. Corrispondono alle 0016 UTC. E sono le 0016 UTC in Italia, a Miami e a Sydney.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #17
    @Andrea1979 Certo ma il risultato di NOW() non è UTC.
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  8. #18
    @Andrea1979 ops, forse intendevi dire che lui vede il risultato in UTC? Ma non è così, in base al suo post iniziale:

    Originariamente inviato da Mixio
    ...
    Nel database ho un campo timestamp ’2013-06-11 05:47:27′, come mai sei imposto SET time_zone = ‘-04:00′ il campo timestamp restituisce ’2013-06-10 23:47:27′ quindi -6 ore invece di -4?
    Quando tu fai una SELECT su un campo TIMESTAMP, visualizzi un valore in base alla tua timezone attuale, non UTC (anche se internamente il TIMESTAMP è per forza UTC, essendo il numero di secondi trascorsi dal 1970 [a Greenwich, perché il timestamp è spesso usato come identificatore univoco, e non può variare in base al luogo in cui ti trovi o alle leggi sull'ora legale che possono cambiare]). Di conseguenza, se hai impostato la timezone di Miami e a Miami c'è l'ora legale, quando selezioni un campo timestamp MySQL ne tiene conto.
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  9. #19
    Ultimo messaggio, scusate il flooding.

    @Mixio, ti confermo che il risultato che ottenevi fin dall'inizio era giustissimo. C'era una differenza di 6 ore, in base a quello che hai scritto. Ora sono le 3.54 AM (non mi piace molto dormire, hehehe), vado su Google e scrivo: "what time is it in miami", e ottengo: 9:54 PM. 6 ore di scarto, quindi, ripeto, tu ottieni un risultato giusto. Non c'è nessun problema. Ti sei fatto ingannare dal fuso orario, secondo me non l'hai capito bene.
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  10. #20
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    Ok ragà sull'analisi ci siamo capiti perfettamente, sarò de coccio ma rimane il problema che non riesco ancora a capire come deve essere la mia SELECT.
    Il mio server è in italia e chi ci lavora è a Miami quindi per ora imposto SET time_zone = '-04:00' e per ora funziona tutto perfettamente, quando a Miami ritornerà l'ora solare dovrò essere io ad impostare a SET time_zone = '-05: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 © 2026 vBulletin Solutions, Inc. All rights reserved.