Fórumok
Nem vagyok rutinos programozás, sql és időmérés témában sem:-) Kis hobbi projektben a problémám:
Egyszerű mysql tábla, az egyik mező timestamp. Python-ból tolnék bele utc-s időbélyegeket. A tavaszi óraállításkor, mikor 2:00-ról 3:00-ra ugrunk nekem vannak utc szerint köztes időpontok is, amit ilyen formában insert-elek pl: "2016-03-27 02:17:00"
De minden ilyen 2:00-3:00 közötti érték 2016.03.27 03:00:00 -val kerül be. Ha jól gondolom, UTC-ben nem kéne óraállításnak lenni, de lehet, hogy vannak fogalomzavaraim.
Erre van valami egyszerű megoldás? Köszönöm
Hozzászólások
Minden idoadatot Unix timestamp-be tarolj le. Sima int-kent ha nem felsz 2038-tol, egyebkent meg 64-bites intkent. Biztos van egy adott sql-nek valamifele tipusa idobelyegzesre, de az a tuti ha kezben tartod a dolgokat. Szub-masodperces pontossag igenye eseten double, julian-datum, vagy barmi megfelelo (fixpontos long int, stb) is jatszhat.
A tobbi marcsak megjelenites kerdese. Hogy "11", "Nov", "November", "Szent Andras hava" format hasznalsz a datum kiiratasara vagy nyari, teli, hawaii vagy nepali idoszamitas szerint adod ezt meg az mar csak es kizarolag a megjelentes megjenelitesenek (legutolso) lepese legyen.
Mysql-lel nagyon regen foglalkoztam. Postgresql-ben van kulon timezone-os es anelkuli idotipus, tud konvertalni, es a pythonos PG modul (psycopg2) is megoldja a kezeleset (mondjuk pythonban egy kicsit elbonyolitottak szerintem az idokezelest, de az mas kerdes). Ha tippelnem kene, a mysql vonal is hasonloan kezeli, de ha timezone-os idokent adsz meg neki invalid erteket, akkor nem tud vele mit kezdeni, es a legkozelebbi ervenyesre kerekiti. Ha a UTC-s ertekedrol o is tudja, hogy az bizony UTC, akkor nem kene, hogy szamitson.
A strange game. The only winning move is not to play. How about a nice game of chess?
Köszönöm a válaszokat, @apal tanácsát megfogadtam, erre egyszerű is volt átalakítani és működőnek is tűnik. @Nyosigomboc: ha jól tudom, MySQL-ben nincs timezone-os időtípus.
A dokumentáció ezt írja:
Vagyis több megoldási lehetőség is adódik: