2017-01-27 2 views
2

У меня есть одна таблица с тремя столбцами, ID, SETTLE_DATE_TIME, STATUS. Я пытаюсь выбрать данные, которые вчера был 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 и статус Е.

+0

Каков точный тип поля SETTLE_DATE_TIME? дата + время? Отметка времени? только дата? – Redlab

+0

@ Redlab timestamp –

ответ

0

попробовать это, где EDCBATCH_SETTLE_DATETIME имеет правильный формат времени даты SQL.

"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

Используйте функцию SUBDATE с current_date.

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

Используйте функцию SUBDATE с NOW() если EDCBATCH_SETTLE_DATETIME отметка времени.

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

Нет работы ..... –

+0

Какой тип данных «EDCBATCH_SETTLE_DATETIME» – Matt

+0

timestamp ...... –

1

Я думаю, что это должно работать:

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

'У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'GETDATE()))' в строке 1' –

Смежные вопросы