1

一昨日のレコードを取得しようとしています。以下のクエリは、昨日のレコードを返します...

SELECT * FROM table WHERE `DATE` > DATE_ADD(CURDATE(), INTERVAL -2 DAY) AND `DATE` < CURDATE()

次のクエリは、前日と昨日のレコードを返します...

SELECT * FROM table WHERE `DATE` > DATE_ADD(CURDATE(), INTERVAL -3 DAY) AND `DATE` < CURDATE()

本当は一昨日だけの記録を取りたいのですが。次のクエリを試していますが、機能していません...

SELECT * FROM table WHERE `DATE` > DATE_ADD(CURDATE(), INTERVAL -3 DAY) AND `DATE` < DATE_ADD(CURDATE(), INTERVAL -2 DAY)

誰かが私を正しい方向に向けることができますか?

4

3 に答える 3

1

DATE_ADD または DATE_SUB なしで、より単純な方法を使用できます。

SELECT * FROM table WHERE DATE = CURDATE() - INTERVAL 2 DAY  

昨日からレコードを取得するには:

SELECT * FROM table WHERE DATE = CURDATE() - INTERVAL 1 DAY  

ただし、DATE列が DATETIME の場合:

SELECT * FROM table WHERE DATE BETWEEN CURDATE() - INTERVAL 2 DAY AND CURDATE() - INTERVAL 1 DAY
于 2013-07-07T03:54:25.560 に答える
0

これ、または >= と < の組み合わせが機能する場合があります

基本的に、存在できない日付範囲を探しています。

SELECT * FROM table WHERE `DATE` = DATE_ADD(CURDATE(), INTERVAL -2 DAY)
于 2013-07-07T03:44:50.540 に答える