2016-04-01 8 views
0

なぜMySQL dateformat関数がクエリ内に月を含む行をフェッチしないのですか?MySQLのdateformat%cは結果を返しませんか?

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 

なぜ、どのように私はこの問題を解決することができ、私はbackdated_on

2015-11-08 19:10:04の任意のアイデアに1行がありますか?

答えて

1

月 '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'2015-08-dd ...のようなマッチング日付です。

+0

答えに感謝します。私の間違い。 – laukok

1

日が2015-11-08 19:10:04場合、対応するロジックは次のようになります。

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

しかし、文字列関数を使用して日付を比較するための悪い癖です。代わりに:

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

ああそれを得た。私の間違い。ありがとう。 – laukok

関連する問題