Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[MySQL] sortowanie wg daty

87 views
Skip to first unread message

fatum777

unread,
Aug 28, 2008, 6:45:58 AM8/28/08
to
Witam,

Mam datę w formie stringa np. 20-09-2008.
Chciałbym przy pobieraniu posortować dane wg daty.

Próbuję przez:
SELECT id, zawartosc, kraj, data FROM dostawy ORDER BY SUBSTRING(data, 6,
4), SUBSTRING(data, 3, 2), SUBSTRING(data,0, 2);
lub
SELECT id, zawartosc, kraj, DATE_FORMAT(data,'%d-%m-%Y') AS data FROM
dostawy ORDER BY data;

W obydwu przypadkach sortowanie nie działa. Jakieś pomysły?

Pozdrawiam


Piotr Keplicz

unread,
Aug 28, 2008, 6:51:43 AM8/28/08
to
fatum777:

> W obydwu przypadkach sortowanie nie działa. Jakieś pomysły?

Przechowywać datę w polach typu DATE lub DATETIME?

.pk.

fatum777

unread,
Aug 28, 2008, 7:07:48 AM8/28/08
to
>> W obydwu przypadkach sortowanie nie działa. Jakieś pomysły?
>
> Przechowywać datę w polach typu DATE lub DATETIME?

Ok. ale jestem ciekawe dlaczego DATE_FORMAT i SUBSTRING nie działają w
zapytaniu SQLowym.


Piotr Keplicz

unread,
Aug 28, 2008, 7:15:59 AM8/28/08
to
fatum777:

> Ok. ale jestem ciekawe dlaczego DATE_FORMAT i SUBSTRING nie działają w
> zapytaniu SQLowym.

Działają, jeśli poprawisz błędne indeksy w SUBSTRING() albo do DATE_FORMAT()
użyjesz daty typu DATE lub DATETIME.

.pk.

nob...@middle.of.nowhere

unread,
Aug 28, 2008, 7:41:42 AM8/28/08
to

SUBSTRING nie działa, bo indeksy podaje się od 1, nie od 0

DATE_FORMAT nie działa, bo jako parametru wymaga daty, nie stringa, a
jeśli stringa, to takiego, którego da się zrzutować na datę; twoich
dat się nie da - sprawdź sobie, co zwraca cast("20-09-2008" as date)

PS. czy już kompletnie nikt nie zagląda do manuala? przecież wystarczy wkleić
nazwę funkcji na http://dev.mysql.com/doc/refman/5.0/en/index.html

fatum777

unread,
Aug 28, 2008, 7:45:42 AM8/28/08
to
> Działają, jeśli poprawisz błędne indeksy w SUBSTRING() albo do
> DATE_FORMAT()
> użyjesz daty typu DATE lub DATETIME.

Dzięki! :)


fatum777

unread,
Aug 28, 2008, 7:53:48 AM8/28/08
to
> SUBSTRING nie działa, bo indeksy podaje się od 1, nie od 0

Przyzwyczajenie z PHP, gdzie substr indeksuje od 0.


0 new messages