Autor Zpráva
Petr
Profil
Ahoj, vytvořil jsem formulář a mám problém nezapisuje se mi do databaze datum a
čas. Potřeboval bych ve tvaru 16.9.2007 v 12:40:20. Poradí mi někdo jak na to.
nightfish
Profil
Ahoj, vytvořil jsem formulář a mám oroblém nezapisuje se mi do databaze datum a
čas. Potřeboval bych ve tvaru 16.9.2007 v 12:40:20. Poradí mi někdo jak na to.


bez podrobnějších informací co jak děláš, případně ukázky kódu to nepůjde
krteczek
Profil
dloupec dej jako datetime a při ukládání now() pro tento sloupec
Joker
Profil
Petr
Potřeboval bych ve tvaru 16.9.2007 v 12:40:20.
K tomuhle poznámka, to ovšem neznamená, že se musí stejným způsobem ukládat do databáze.
Do databáze se uloží prostě datum a čas (asi nejlépe jako rrrr-mm-dd hh:mm:ss, to je snad bezproblémový zápis) a pak se to příslušně naformátuje při zobrazení.
Petr
Profil
Joker
Do databaze je to bez problému, ale nevím jak to mám na formátovat při zobrazení. Poradíš mi prosím tě....
Diky moc
Kajman_
Profil *
http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#fu nction_date-format
Petr
Profil
Kajman_ na to už jsem koukal a nebyl jsem s toho chytrej.
djlj
Profil
Petr
Pod tou tabulkou máš příklady.
Petr
Profil
djlj a poradil bys mi prosím tě jaký mám použít příkaz....
djlj
Profil
Klikni na tento odkaz: http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#fu nction_date-format
Jak je patrno, možná jsi na něj klikl, ale ani sis jej nepřečetl (toto je většinou vyžadováno). Kdybys tak učinil, víš, že směřuje přímo na funkce DATE_FORMAT a jsou tam i příklady.
fikus
Profil *
Petr
konkretne to vypada treba takhle: SELECT DATE_FORMAT(datum_ze_sql,'%e.%c.%Y %H:%i:%S') as zformatovane_datum FROM...
Petr
Profil
Když jsem to udělal takle, tak se mi nevypsali informace z databaze.

$vysledek = MySQL_Query("SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR')) FROM scoajl_clanky ORDER BY id desc LIMIT $stranka, 10 ");
nightfish
Profil
Když jsem to udělal takle, tak se mi nevypsali informace z databaze.
protože v té ukázce žádné vypisování informací nemáš...

http://linuxsoft.cz/php - díly 38, 39, případně další
Joker
Profil
Když jsem to udělal takle, tak se mi nevypsali informace z databaze.

protože v té ukázce žádné vypisování informací nemáš...

Krom toho bych SQL dotazy testoval raději třeba v phpMyAdminu testovací databáze, kde se dá dotaz rychle upravit, rovnou je vidět co vrátí a případné chyby.
aDAm
Profil
a co takhle tam ten cas hazet v unixovem tvaru a pak je jen formatovat pomoci date() ???
nightfish
Profil
a co takhle tam ten cas hazet v unixovem tvaru
otázka za 20 bodů - co to udělá, když budeš chtít uložit třeba 15.4.1965?
aDAm
Profil
mno to je fakt ze v tomto pripade by to bylo problem, ja tedy spis ukladam jen casy z hodne blizke minulosti nebo pritomnost a budoucnost ;)
krteczek
Profil
aDAm: budoucnost je unix timestamp také omezena
nightfish
Profil
budoucnost je unix timestamp také omezena
konkrétně v PHP je maximální datum, které vrátí funkce Date() rovno 2038-01-19 04:14:07 (pro timestamp 2147483647 - maximální hodnota 32-bitového celého čísla se znaménkem)
Petr
Profil
Ahoj, všem moc děkuji za pomoc ohledne čtení datumu a času z databaze. Problém už jsem vyřešil už mi to funguje.
aDAm
Profil
2038 mi zatim bohate staci ;)
nightfish
Profil
2038 mi zatim bohate staci ;)
některým týpkům taky stačilo ukládat pouze 2 cifry z letopočtu... a jak to dopadlo
Joker
Profil
Já myslím, že s timestamp problém nebude- prostě se rozšíří na 64 bitů, nějaký čas budou paralelně dva formáty a během pár let všichni přejdou.

Krom toho myslím, že už existuje nějaký timestamp se začátkem 1.1.1900 a rozsahem pár tisíc let :-)

Na druhou stranu jsem asi nikdy nějak nepochopil, proč vlastně timestamp používat. Když kontroluju databázi třeba v phpMyAdminu nebo si nechám vypsat obsah nějaké proměnné, je lepší tam vidět například "2007-09-19 13:22:46" než "1190200966"
nightfish
Profil
Na druhou stranu jsem asi nikdy nějak nepochopil, proč vlastně timestamp používat.
kvůli jednoduchému rozdílu dvou datumů?
Str4wberry
Profil
nightfish
Řekl bych, že o něco málo menší jednoduchost nepřeváží přehlednost.
nightfish
Profil
Řekl bych, že o něco málo menší jednoduchost nepřeváží přehlednost.
netvrdím, že ano, sám v databázích používám výhradně sloupce typu date/datetime
uváděl jsem to jen jako příklad možného uvažování...
Joker
Profil
nightfish
kvůli jednoduchému rozdílu dvou datumů?
Tak to je asi jediná možnost co mě napadla, ovšem dneska už to často je jenom výpočetně rychlejší, než programátorsky jednodušší... když dneska často existují funkce na výpočet rozdílu mezi daty a psát něco jako dateDiff(getT1(), getT2(), "d"); je pro programátora přehlednější a jednodušší, než něco jako ((getT1() - getT2()) / 3600) / 24;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0