| Autor | Zpráva | ||
|---|---|---|---|
| quatzael Profil |
Je nějak možné, aby jsem mohl mít v databázi (MySQL) datum ve formátu dd.mm.yyyy v jednom sloupci a čas ve formátu hh:mm (24 h) v jiném?
Potřeboval bych, aby SQL potom s těmito údaji uměla zacházet jako s datem. |
||
| Tori Profil |
#2 · Zasláno: 15. 5. 2013, 22:49:15
quatzael:
- co potřebujete dělat se samotným časem? (řazení, porovnávání, ...) - co se samotným datumem? - co s celým údajem datum+čas? Podle toho bych asi rozhodovala, jestli samostatné sloupce nebo ne. |
||
| quatzael Profil |
#3 · Zasláno: 15. 5. 2013, 22:56:55
Tori:
Sloupce na datum a čas chci mít spíše zvlášť, samozřejmě jestli to nezabraňuje nějak seřazení podle data a času Určitě budu potřebovat vybírat záznamy podle data/času nebo oboje s podmínkou od .. do .. Potřebuju, aby to bylo co nejvíc flexibilní a šlo s tím víc věcí.. |
||
| ts_istudio Profil |
#4 · Zasláno: 16. 5. 2013, 08:59:59
quatzael:
„Sloupce na datum a čas chci mít spíše zvlášť“ Pokud na to nemáš nějaký atypický požadavek týkající se filtrování nebo třídění, používal bych DATETIME. |
||
| quatzael Profil |
#5 · Zasláno: 16. 5. 2013, 13:34:37
Ale mě právě zajímá jak udělat to, aby se vkládalo do sloupce datum a čas, tak aby s tím uměla databáze zacházet jako s datem a přitom to bylo ve formátu: dd.mm.yyyy a hh:mm (24 h).
Jestli to jde tak ideálně, aby si tam sama databáze zapsala aktuální datum a čas při každým zápisu. A aby to bylo ve formátu, který jsem uváděl. Popřípadě, aby se to na daný formát dalo převádět.. |
||
| juriad Profil |
#6 · Zasláno: 16. 5. 2013, 13:47:26
quatzael:
Nesnaž se mít v databázi tebou formátovaný datum, nikdy s ním nebude možné provádět všechny operace. Použij některý z typů k tomu určený. Také přece nebudeš do databáze ukládat desetinné číslo jako řetězec, protože tam chceš mít českou desetinnou čárku místo hnusné imperialistické desetinné tečky. „aby se to na daný formát dalo převádět..“ https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format prostě při SELECTU místo názvu sloupečku uvedeš: DATE_FORMAT(sloupec_s_datumem, '%e.%c.%Y %k:%i:%s') AS formatovany_datum úložka: vypiš počet objednávek v jednotlivých dnech v týdnu za poslední rok; předformátovaný datum tuto operaci nenaučíš |
||
| quatzael Profil |
#7 · Zasláno: 16. 5. 2013, 14:36:40
juriad:
Mě imperialistický tečky vůbec nevadí, naopak je sám většinou používám místo čárek. Ale ty stránky dělám pro český uživatele, tak chci mít, aby se mi zobrazoval český formát. Moc jsem to ale nepochopil jak to myslíš.. Při selectu to udělám když budu potřebovat čas zjistit. Ale jak tam mám do tý databáze to datum vložit?? Mám si aktuální datum zjistit v PHP pomocí funkce date() a potom to vložit do databáze v nějakým tom formátu s pomlčkama nebo to umí přímo ta databáze sama zjistit datum a vložit automaticky?? Taky nechápu co znamená ta proměnná formatovany_datum.. jako výslednou položku pole?? že by to bylo nějak takhle: $query = "SELECT (column_1, column_2, DATE_FORMAT(sloupec_s_datumem, '%e.%c.%Y %k:%i:%s') AS formatovany_datum) FROM table; $send = mysqli_query($db_connect, $query); $result = mysqli_fetch_array($send); $date = $result[formatovany_datum]; |
||
| juriad Profil |
#8 · Zasláno: 16. 5. 2013, 15:11:46
Ano, veškeré datumy musí být formátované pro MySQL, ten pomlčkový formát.
$insert = "INSERT INTO tabulka (datum) VALUES ('" . date("Y-m-d H:i:s") . "')";
mysqli_query($con, $insert);$select = "SELECT DATE_FORMAT(datum, '%e.%c.%Y %k:%i:%s') AS formatovany_datum FROM tabulka LIMIT 1"; $result = mysqli_query($con, $select); $array = mysqli_fetch_array($result); $date = $array['formatovany_datum']; $select ="SELECT datum FROM tabulka LIMIT 1";
$result = mysqli_query($con, $select);
$array = mysqli_fetch_array($result);
$date = date('j.n.Y H:i:s', strtotime($array['datum'])); |
||
| quatzael Profil |
#9 · Zasláno: 16. 5. 2013, 15:17:09
juriad:
Díky moc!! Tohle je skvěle vysvětlený!! |
||
| juriad Profil |
#10 · Zasláno: 16. 5. 2013, 15:23:04
Nejlepší možnosti je asi formátovat až v PHP, pak si můžeš provádět "triky" jako tady na diskusi: všimni si pole zasláno u každého příspěvku. Vypisuje Dnes, Včera, Předevčírem, případně konkrétní datum, pokud je příspěvek příliš starý.
|
||
|
Časová prodleva: 13 let
|
|||
0