2016-04-01 13 views
0

Warum MySQL dateformat Funktion Zeilen mit einem Monat in der Abfrage nicht abrufen?MySQL dateformat% c liefert keine Ergebnisse?

SELECT p.* 
FROM article AS p 
WHERE p.parent_id = '6' 
AND DATE_FORMAT(p.backdated_on, '%Y %c') = '2015 8' 
GROUP BY p.article_id 
ORDER BY p.backdated_on DESC 
LIMIT 0, 6 

Ich habe eine Reihe mit den backdated_on von 2015-11-08 19:10:04

Irgendwelche Ideen, warum und wie kann ich dieses Problem beheben?

Antwort

1

Der Monat ist '2015 11':

mysql> select DATE_FORMAT('2015-11-08 19:10:04', '%Y %c'); 
+---------------------------------------------+ 
| DATE_FORMAT('2015-11-08 19:10:04', '%Y %c') | 
+---------------------------------------------+ 
| 2015 11          | 
+---------------------------------------------+ 
1 row in set (0.00 sec) 

'2015 8' ist Datum wie 2015-08-dd ... entsprechen.

+0

danke für die Antwort. mein Fehler. – laukok

1

Wenn das Datum 2015-11-08 19:10:04 ist, dann wäre die entsprechende Logik:

DATE_FORMAT(p.backdated_on, '%Y %c') = '2015 11' 

Es ist jedoch eine schlechte Gewohnheit Daten Funktionen Zeichenfolge zu vergleichen. Stattdessen:

(p.backdated_on >= '2015-11-01' and p.backdated_on < '2015-12-01') 
+0

aww hat es geschafft. mein Fehler. Vielen Dank. – laukok

Verwandte Themen