Autor | Zpráva | ||
---|---|---|---|
arkjnu Profil * |
#1 · Zasláno: 12. 2. 2012, 21:45:30
Do databáze ukládám informace o tom, kdy určití lidé ukončí své studium. Sloupec je typu date. Pakliže ukládám datum, které neexistuje, tak se neuloží žádná informace, ani o tom není uživatel informován. Existuje nějaká funkce, která umožňí zjistit jestli nějaké datum existuje?
Data mám ve formátu rrrr-mm-dd např. 2012-06-31 u takového data bych potřeboval aby ho to odhalilo. Děkuji |
||
Sir Tom Profil |
#2 · Zasláno: 12. 2. 2012, 22:04:55
arkjnu:
MySQL, myslím, že neumí rozlišit datum, které je reálné od nereálného. Nicméně dá se to vyřešit stejně, jako to řeší normální člověk. Z data si vezme měsíc a podle něho zjistí, jaký je možný maximální počet dní v daném měsíci. Jestliže toto číslo je menší než zadané číslo dne, pak je datum nereálné. |
||
Jan Tvrdík Profil |
#3 · Zasláno: 12. 2. 2012, 22:44:09
|
||
DoubleThink Profil * |
#4 · Zasláno: 13. 2. 2012, 00:03:31
Sir Tom:
„MySQL, myslím, že neumí rozlišit datum, které je reálné od nereálného“ U časových sloupců to bez problémů pozná - respektive uloží nulovou hodnotu případně vrátí NULL z časových funkcí. Samozřejmě, pokud je někdo pitomec a ukládá čas jako VARCHAR, není mu pomoci. |
||
Sir Tom Profil |
#5 · Zasláno: 13. 2. 2012, 00:06:40
DoubleThink:
„U časových sloupců to bez problémů pozná - respektive uloží nulovou hodnotu případně vrátí NULL z časových funkcí.“ Zde (část označena jako praxe) se mluví o opaku. |
||
DoubleThink Profil * |
#6 · Zasláno: 13. 2. 2012, 00:11:55
Od verze 5.0.2 jsou data standardně validována.
Viz ALLOW_INVALID_DATES. |
||
Časová prodleva: 12 let
|
0