Z databaze jsou vraceny o hodinu posunute záznamy
- machine_9
- Člen | 1
Pri vraceni vysledku ze dne, kdy se menil cas (25. 10. 2015) ci z drivejsich dni z CEST jsou z MySQL vraceny o hodinu posunute zaznamy.
Mam tabulku records se sloupcem
created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
Kdyz v databazi pustim dotaz
SELECT id, created
FROM records
WHERE created >= ‚2015–10–25 00:00:00‘
AND created < ‚2015–10–26 00:00:00‘
vrati mi to vysledky s hodnotou created 2015–10–25 00:04:57 –
2015–10–25 23:54:50
kdyz dotaz pustim v Nette, do vysledku se z databaze nactou zaznamy
s hodnotou created 2015–10–25 01:00:48 – 2015–10–25 23:54:50.
Kdyz si vsak vsechny hodnoty vypisu, vypisi se hodnoty 2015–10–25
00:00:48 – 2015–10–25 23:54:50 a ve vysledcich nejsou zadne zaznamy
s hodnotou mezi 3. a 4. hodinou.
Zaznam s vypsanou hodnotou 2015–10–25 00:00:48 ma realne v databazi
ulozeno 2015–10–25 01:00:48
na serveru je nastaveno
Timezone: Europe/Prague (CET, +0100)
v mysql je nastaveno
@@global.time_zone SYSTEM
@@session.time_zone SYSTEM
kdyz si pred volanim dotazu zmenim @@session.time_zone, tak to potom zase vraci nespravne vysledky pro dni po 2015–10–25
Muze mi nekdo poradit, jak na to, aby se do vysledku vratily spravne
zaznamy?
Zmene datoveho typu nebo jinym upravam v tabulce bych se chtel vyhnout, jelikoz
je hodne obsahla.
- pata.kusik111
- Člen | 78
machine9 napsal(a):
Pri vraceni vysledku ze dne, kdy se menil cas (25. 10. 2015) ci z drivejsich dni z CEST jsou z MySQL vraceny o hodinu posunute zaznamy.
Mam tabulku records se sloupcem
created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMPKdyz v databazi pustim dotaz
SELECT id, created
FROM records
WHERE created >= ‚2015–10–25 00:00:00‘
AND created < ‚2015–10–26 00:00:00‘
vrati mi to vysledky s hodnotou created 2015–10–25 00:04:57 – 2015–10–25 23:54:50kdyz dotaz pustim v Nette, do vysledku se z databaze nactou zaznamy s hodnotou created 2015–10–25 01:00:48 – 2015–10–25 23:54:50.
Kdyz si vsak vsechny hodnoty vypisu, vypisi se hodnoty 2015–10–25 00:00:48 – 2015–10–25 23:54:50 a ve vysledcich nejsou zadne zaznamy s hodnotou mezi 3. a 4. hodinou.
Zaznam s vypsanou hodnotou 2015–10–25 00:00:48 ma realne v databazi ulozeno 2015–10–25 01:00:48na serveru je nastaveno
Timezone: Europe/Prague (CET, +0100)v mysql je nastaveno
@@global.time_zone SYSTEM
@@session.time_zone SYSTEMkdyz si pred volanim dotazu zmenim @@session.time_zone, tak to potom zase vraci nespravne vysledky pro dni po 2015–10–25
Muze mi nekdo poradit, jak na to, aby se do vysledku vratily spravne zaznamy?
Zmene datoveho typu nebo jinym upravam v tabulce bych se chtel vyhnout, jelikoz je hodne obsahla.
Není to přímá odpoveď, ale pokud umíš anglicky a chceš se o této problematice něco dozvědět (a jak na to), tak doporučuji tuto otázku na stackoverflow. Zatím nejucelenější povídání, které jsem o tom našel.