2013-04-17 3 views
0

Я хотел бы, чтобы пользователь мог видеть их вчерашнюю картинку, загруженную на страницу профиля.MySQL Получить вчера контент

Я это правильно?

SELECT * FROM pictures WHERE userid = '$userid' AND DATE(pictureuploadeddate) = DATE_SUB(CURDATE(), INTERVAL 25 HOUR) ORDER BY uploaded DESC 

Еще не работает. Спасибо за помощь.

+2

** Что именно ** не работает? – Jocelyn

+0

@Jocelyn: моя ошибка, ORDER BY должен быть pictureuploadeddate Спасибо. – user2279205

ответ

1

попробовать это,

DATE(pictureuploadeddate) = CURDATE() - INTERVAL 1 DAY 

воспользоваться индексом,

pictureuploadeddate >= CURDATE() - INTERVAL 1 DAY AND pictureuploadeddate < CURDATE() 
+0

@J W теперь они работают быстрее! Спасибо эксперту! – user2279205

+0

Добро пожаловать. –

1

Возьмем следующее условие должно быть в порядке.

DATE_FORMAT(DATE(pictureuploadeddate), '%m-%d-%Y') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%m-%d-%Y') 
+0

Спасибо @NobodyElse. Работает как шарм! – user2279205

+0

Это удовольствие :) –

1

Почему вы используете DATE(pictureuploadeddate) Isnt pictureuploadeddate дата столбца формат?

Мое нижнее решение предполагало, что `pictureuploadeddate 'является столбцом типа даты. Вы можете просто сделать сравнение, как в следующем:

SELECT * FROM pictures WHERE userid = '$userid' AND pictureuploadeddate = ADDDATE(CURDATE(), -1) ORDER BY uploaded DESC 

ADDDATE(CURDATE(), -1) возвращается вчерашняя дата вычитания 1 дня с сегодняшнего дня.

+1

Возможно, это столбец datetime. – Barmar

+0

@Barmar: Спасибо. Люблю тебя. – user2279205

+0

@somnath У меня есть это. Благодаря! – user2279205

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