Autor Zpráva
mahdy
Profil
zdravím lidi, mám problém s seřazním záznamů z mysql databáze podle datumu a času.

V DBF (tabulce) mám u každého záznamu sloupec čas a datum. čas je ve tvaru konstanty a datum Y-m-d.
Potřebuju tytop data vypsat dle datumu a času vzestupně.
Když jsem použil:

mysql_query('SELECT * from predmety WHERE stav="běží" AND typ<>"bazar" ORDER BY datum, cas');


Tak mi to vypisovalo uplně nesmyslně. Prostě aby to nejdřív bralo v potaz datum a až potom čas v tom dni

Budu rád za každý nápad.
Taps
Profil
mahdy:
zkoušel jsi to i takto ?
mysql_query('SELECT * from predmety WHERE stav="běží" AND typ<>"bazar" ORDER BY datum DESC, cas DESC');
mahdy
Profil
Taps:
Bohužel ne, on vezme ten cas, ale datum uz ignoruje.. Cas mam napr: 65000 (je v sekundach) jako INT
datum ve tvaru Y-m-d
AM_
Profil
mahdy:
datum ve tvaru Y-m-d
jako co? jako VARCHAR nebo jako DATE?
Vidím to na typickou začátečnickou chybu, "když se do VARCHAR dá zapsat prakticky všechno, proč vůbec používat jiné datové typy?"
Datum a čas by měly být v jednom sloupci typu DATETIME, dělit to na dva sloupce a ty ještě k tomu zapisovat takhle šíleně není dobrý nápad.
mahdy
Profil
ja to vím že se spravne musi pouzit DATETIME, ale to já nemůžu (z principu)
Datum je typu date a čas int
Keeehi
Profil
mahdy:
I když je to dosti nestandardní, výše vámi uvedený uvedený kód by měl přesto fungovat.

ja to vím že se spravne musi pouzit DATETIME, ale to já nemůžu (z principu)
Toto vůbec nechápu. Můžete napsat konkrétní důvod, co vám v tom brání?
AM_
Profil
mahdy:
ale to já nemůžu (z principu)
z jakého principu? náboženské důvody?

a čas int
tak alespoň ať je ten čas TIME, když už to nemůže být v jednom sloupci

Bohužel ne, on vezme ten cas, ale datum uz ignoruje..
O tom dost silně pochybuji, řazení dle data funguje normálně. Zkus si to seřadit třeba v myAdminu. Jedině je snad možné, že máš data blbě uložená. Jinak bych asi musel vidět živou ukázku.
mahdy
Profil
AM:
Time být nemůže když je to konstanta.

No právě mě to taky přijde divný že to ignoruje, ale proste je to tak
Keeehi
Profil
mahdy:
Když je to tedy konstanta, to znamená, že je pořád stejná -> Nemůžeš se divit, že jí to "přehlíží". Ono když jsou všechny hodnoty stejné, tak se podle nich dost těžko řadí ;-)
mahdy
Profil
Keeehi:
ale blbost!
Je to proste datovy typ INT s ruznyma hodnotama
nightfish
Profil
mahdy:
No právě mě to taky přijde divný že to ignoruje, ale proste je to tak
pošli dump pár řádků z tabulky
mahdy
Profil
tak jsem si to zkusil vypsat primo v myadminu a v poradku, v php to dela hapry
vypsalo to takhle:
16.2. 79000
17.2. 82830
20.2. 82734
19.2 80200

Proč? proč ten posledni radek takto? vzdyt ten ma byt o jeden radek vys. (Nejdriv radit dle dataa, pak cas)
AM_
Profil
mahdy:
Time být nemůže když je to konstanta.
Safra jaká konstanta? 79000 je konstanta a 21:11 konstanta není? Konstanta je údaj který se v čase nemění, co to má společného s formátem zápisu čísla; řekl bych, že spíš jednak neumíš terminologii a jednak SQL.

[#12] mahdy
Ukaž SQL dotaz, kterým jsi to vypsal. To nevypadá úplně jako formát Y-m-d.

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: