Forum Delphi.cz

Databáze => Obecné => Téma založeno: František 28-08-2018, 08:37:49

Název: Ako správne pracovať s dátumom III.
Přispěvatel: František 28-08-2018, 08:37:49
stále ten problém s dátumom nemám vyriešený.

mám aplikáciu
ktorá používa MySQL (ukladá dd-mm-yyyy) a aj Firebird (ukladá dd.mm.yyyy), do DB ako VARCHAR,
potrebujem zjednotiť prácu s dátumom a časom,
aplikácia sa používa v rôznych krajinách a preto potrebujem zobrazovať podľa umiestnenia (nastavenia windows locale)

bude mi to takto fungovať?
urobím rutinu/triedu na ukladanie/čítanie pre jednotlive DB, len neviem ako urobiť tu konverziu, lebo
sk,ru: dd.mm.yyyy hh:nn:ss
uk: mm/dd/yyyy hh:nn:ss
fi: dd.mm.yyyy hh.mm.ss
atd ...
ukladať to rozparsované a potom skladať? - moc velký zásah s prerábaním dat v DB, nakoľko to ukladám vo VARCHAR, ale teraz to mam v jednej DB v rôznych formátoch - ak sa menilo locale

ps. a tomuto už vôbec nerozumiem: mám app v rôznych adresároch na jedom kompe a zobrazuje mi rozdielne formáty dátumu
Název: Re:Ako správne pracovať s dátumom III.
Přispěvatel: pf1957 29-08-2018, 14:22:57
ukladať to rozparsované a potom skladať? - moc velký zásah s prerábaním dat v DB, nakoľko to ukladám vo VARCHAR, ale teraz to mam v jednej DB v rôznych formátoch - ak sa menilo locale
1. DB model by mel odpovidat pozadavkum tj. k cemu se ulozeny datum a cas pouziva.
2. Z tohoto pohledu nejobecnejsim a vetsinove spravnym resenim je pouzit nativni datovy typ konkretniho RDBMS a nechat konverze na DB vrstve tj. aplikace na strane Delphi pracuje s typem TDateTime a do/z DB ho predava/prebira pomoci .AsDateTime
3. Casovy udaj by mel predstavovat UTC
4. Vetsina RDBMS disponuje nejakymi funkcemi pro praci s datumem a casem, takze s nim lze pomoci techto funkci operovat v SQL prikazech
5. Pokud z nejakeho (pro mne tezko pochopitelneho) duvodu potrebujes zapisovat datum do DB jako text, melo by to vzdycky byt ve formatu ISO 8601 tj.  rok->mesic->datum->hodina->..., aby se podle sloupce dalo prinejmensim tridit...



Citace
ps. a tomuto už vôbec nerozumiem: mám app v rôznych adresároch na jedom kompe a zobrazuje mi rozdielne formáty dátumu
Na to se neda jednoduse odpovedet, to zalezi jak ho zobrazujes
Název: Re:Ako správne pracovať s dátumom III.
Přispěvatel: 101318 29-08-2018, 14:31:33

Souhlas, nicmene OP se neda presvedcit (https://forum.delphi.cz/index.php/topic,16234.msg100665.html#msg100665) ::) :) Pak to skonci tim ze sem na forum nekdo prijde, vyhleda si tema "jak spravne pracovat s datumem" a hned bude na svete o nekolik zmrsene navzrenych databazi vic.

Prepinam ;D