2012-01-16 2 views
0

Я пробовал этот запрос ниже, но он по-прежнему возвращает дни с -1. Я хочу, чтобы предложение where возвращало строки, которые составляют 2 дня или новее. Благодаря!mysql с использованием DateTime в whereclause

SELECT uniqueKey,(TO_DAYS(TimeStampColumn) - TO_Days(Now())) as 'dayDiff' 
FROM couponextractor.tblresults 
where 'dayDiff' >= 0 

ответ

1

Потому что вы просто сравнить строку «daydiff»> = 0, которое всегда имеет значение 0 => верно

Вы должны избавиться от котировок и использования HAVING, кроме того, что это очень неэффективный запрос ... лучше вычислить дату раньше и просто использовать оператор> = в столбце.

HAVING dayDiff> = 0

Так просто вычислить точную дату, а затем просто сделать WHERE TimeStampColumn> = "XXXX-XXXX AA: AA: AA", поэтому он может быть оптимизирован сервером, если у вас есть индексы.

+0

ahh ty SELECT uniqueKey, (TO_DAYS (TimeStampColumn) - TO_Days (сейчас())) как dayDiff FROM couponextractor.tblresults с днемDiff = 0 –

0

Почему вы не использовать функцию MYSQL DATEDIFF-?

SELECT uniqueKey,DATEDIFF(TimeStampColumn,Now()) as 'dayDiff' 
FROM couponextractor.tblresults 
where DATEDIFF(TimeStampColumn,Now()) >= 1 

Думайте, что это сработает. Возможно, вам нужно нарисовать TimeStampColumn.

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