2017-01-27 24 views
2

ID、SETTLE_DATE_TIME、STATUSの3つの列を持つテーブルが1つあります。私は昨日のSETTLE_DATE_TIMEのデータを選択しようとしており、STATUSは 'E'です。MySQLの昨日の日付を選択

SELECT * 
    FROM rev_acq_edcbatch 
WHERE EDCBATCH_STATUS='E' 
    AND EDCBATCH_SETTLE_DATETIME = CURDATE() - INTERVAL 1 DAY; 

ませデータを取得していないが、私は、日付時刻を精算データが2017-01-26 16:28:50.000で、ステータスがこれは動作するはずE.

+0

フィールドSETTLE_DATE_TIMEの正確なタイプは何ですか?日付+時刻?タイムスタンプ?日付のみ? – Redlab

+0

@Redlabタイムスタンプ –

答えて

0

は、これを試してみてください。

"SELECT * FROM rev_acq_edcbatch WHERE DATE(EDCBATCH_SETTLE_DATETIME) = CURDATE() - 1" 
0

である必要がありました。

SELECT * FROM rev_acq_edcbatch where EDCBATCH_STATUS='E' AND EDCBATCH_SETTLE_DATETIME = DATE_SUB(NOW(), INTERVAL 1 DAY) ; 
+0

いいえ動作しています..... –

2

current_dateSUBDATE関数を使用してください。

SELECT * 
FROM rev_acq_edcbatch 
WHERE EDCBATCH_STATUS='E' 
AND EDCBATCH_SETTLE_DATETIME = subdate(current_date, 1) 

EDCBATCH_SETTLE_DATETIMEがタイムスタンプである場合NOW()SUBDATE機能を使用してください。

SELECT * 
FROM rev_acq_edcbatch 
WHERE EDCBATCH_STATUS='E' 
AND EDCBATCH_SETTLE_DATETIME = subdate(NOW(), 1) 
+0

いいえ動作しています..... –

+0

「EDCBATCH_SETTLE_DATETIME」はどのデータ型ですか – Matt

+0

タイムスタンプ...... –

1

私は、これは動作するはずだと思う:EDCBATCH_SETTLE_DATETIMEは、SQLの適切な日付時刻形式を有する場合

SELECT * FROM rev_acq_edcbatch where EDCBATCH_STATUS='E' AND DATE(EDCBATCH_SETTLE_DATETIME) = DATEADD(day, -1, convert(date, GETDATE())) 
+0

'あなたはSQL構文に誤りがあります。 'GETDATE())の近くで使用する正しい構文についてはMySQLサーバのバージョンに対応するマニュアルをチェックしてください))' at line 1' –