/ / mysql używając DateTime w whereclause - mysql

mysql przy użyciu DateTime w whereclause - mysql

Próbowałem tego zapytania poniżej, ale nadal zwraca dni, które miały -1 wartości. Chcę, aby klauzula where zwracała wiersze, które są 2 dni lub nowsze. Dzięki!

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

Odpowiedzi:

1 dla odpowiedzi № 1

Ponieważ właśnie porównasz ciąg "daydiff"> = 0, który zawsze ma wartość 0 => true

Musisz pozbyć się cytatów i używać HAVING, a to bardzo nieefektywne zapytanie ... lepiej jest obliczyć datę wcześniej i po prostu użyć operatora> = w kolumnie.

HAVING dayDiff> = 0

Po prostu oblicz dokładną datę, a następnie po prostu zrób WHERE TimeStampColumn> = "XXXX-XX-XX AA: AA: AA", więc może być zoptymalizowany przez serwer, jeśli masz indeksy.


0 dla odpowiedzi nr 2

SELECT * FROM tbl WHERE datetime <NOW () - INTERVAL 2 DAY


0 dla odpowiedzi № 3

Dlaczego nie używasz funkcji MYSQL DATEDIFF?

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

Pomyśl, że to się spełni. Być może musisz rzucić TimeStampColumn.