datum in sql
Bij een klein shoutboxje is het de bedoeling dat als er een bericht vandaag is gepost, dat dan de tijd (HH:MM) erneer word gezet en als het bijv. gisteren of daarvoor werd gepost, dat je dan de datum (DD.MM) ziet. De kolomnaam is "tijd" en heeft een datetime op zich.
Ik weet wel dat je met het volgende een specifiek gedeelte kan pakken, maar hoe zorg ik er nou voor dat hij bij een vorige dag de datum pakt en bij vandaag de tijd?
Gewijzigd op 01/01/1970 01:00:00 door J A
Quote:
Notice: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(tijd) < CURRENT_DATE THEN DATE_FORMAT(tijd
In query: SELECT CASE WHEN DATE(tijd) < CURRENT_DATE THEN DATE_FORMAT(tijd, '%d.%m') ELSE DATE_FORMAT(tijd, '%H:%i') END AS tijdstip, bericht FROM shoutbox in ..... on line 20
In query: SELECT CASE WHEN DATE(tijd) < CURRENT_DATE THEN DATE_FORMAT(tijd, '%d.%m') ELSE DATE_FORMAT(tijd, '%H:%i') END AS tijdstip, bericht FROM shoutbox in ..... on line 20
De query even getest, en hij werkt hier lokaal prima. Welke versie van MySQL gebruik je?
Als het goed is word hij binnenkort een keer geupdate .. helaas duurt dat altijd even :( Of ik zal even moeten zoeken naar een andere host :P
Gewijzigd op 01/01/1970 01:00:00 door J A
Kan het alleen op versie 5 dan?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
SELECT
CASE WHEN DATE_FORMAT(tijd, '%Y-%m-%d') < CURRENT_DATE
THEN
DATE_FORMAT(tijd, '%d.%m')
ELSE
DATE_FORMAT(tijd, '%H:%i')
END AS tijdstip
FROM
tabel
CASE WHEN DATE_FORMAT(tijd, '%Y-%m-%d') < CURRENT_DATE
THEN
DATE_FORMAT(tijd, '%d.%m')
ELSE
DATE_FORMAT(tijd, '%H:%i')
END AS tijdstip
FROM
tabel
Maar goed, het is nog altijd geen pretje om met MySQL 4.0 te moeten werken. Overstappen naar een andere host kan ook altijd nog een optie zijn als ze niet zeer binnenkort gaan upgraden...
Bedankt, het werkt ;)