SQL sortiraj po vremenu iz dvije kolone

Ovako trebam da sortiram iteme iz date_posted ili iz date_edited ovisi gdje je vrijeme najblize trenutnom.

Format vremena “2018-03-18 16:03:48” (php: date(Y-m-d H:i:s)

Pokušao sam ove stvari:
"SELECT * FROM table ORDER BY GREATEST(date_posted, date_edited) …) ,
“SELECT *,
CASE WHEN date_posted > date_edited THEN date_posted
ELSE date_edited
END AS sorting_date
FROM table
ORDER BY sorting_date”

Sad, problem nastaje ovdje: U nekim kolonama je drukcij format vremena. NPR: “03-18-2018 bez sati”, “03 18 2018”, također neke kolone su prazne.

Većina praznih je date_posted.

Da li mogu nekako da postavim default u date_posted i na primjer ako je vrijeme isto, što bi i bilo, onda da sortiram po id. Ili neka druga solucija.

Nadam se da sam dovoljno obrazlozio problem. Hvala :smiley:

Treba ti univerzalno polje za sort.
To bi trebalo biti u formatu npr:
YYYYMMDDHHMMSSNNNNNNNNN
gdje je NNNNNNNN id koji bi trebao biti dopuna za sort.

Nisam shvatio baš najbolje, kad postavljam da postavim u to polje, i kad editujem da updejtam to isto ?

Ne :slight_smile:
Nisam doma sa MySQL-om pa ću probat nabadat:

Primjer bi bio:
SELECT DATEFORMAT(GREATEST(date_posted, date_edited), “%Y%m%d%H%i%s”) + STR(ID) sorting_date, …
FROM table
ORDER BY sorting_date

STR(id) bi trebala konvertirati id iz numeričke vrijednosti u string kako bi se mogla spojiti sa string vrijednošću datuma, da bi se na kraju dobilo nešto slično ovome:
20180319010100463232
20180319010101456789
20180319010101456792
20180319020101222222

Namjerno je ID prvog sloga veći od ID-a drugog i trećeg kako bi se vidjelo da je u tom slučaju datum dominantan. ID je bitan samo ako je datum jednak, što si i napisao u prvom postu.


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Profit Monkey