Работа с SQL и датой - PullRequest
       2

Работа с SQL и датой

0 голосов
/ 06 марта 2012

Я новичок в работе с SQL на дату.

Однако мне нужно выполнить запрос, который возвращает фильтр записей по дате X <или> 30 дней или аналогичный.

У меня есть этот запрос сейчас:

SELECT nome_prodotto,quantita 
FROM prodotti 
LEFT JOIN acquisti 
    ON prodotti.id_prodotto = acquisti.id_prodotto

моя цель - получить товар, который не был куплен в последние 30 дней или аналогичный

Ответы [ 4 ]

2 голосов
/ 06 марта 2012
 WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) =< your_date;
1 голос
/ 06 марта 2012

Если поле даты в acquisti называется date_acquisti, товары, не купленные в течение последних 30 дней, будут запрашиваться следующим образом:

SELECT nome_prodotto,quantita 
FROM prodotti 
LEFT JOIN acquisti 
    ON (prodotti.id_prodotto = acquisti.id_prodotto
        AND acquisti.date_acquisti > CURDATE() - INTERVAL 30 DAY)
where acquisti.id_prodotto is NULL

В трюке используется JOIN condition дляполучить только приобретение продукта за последние 30 дней.Поскольку это LEFT JOIN, любая строка в наборе результатов, где acquisti.id_prodotto равна NULL, означает, что продукт не был приобретен в этот период.

0 голосов
/ 06 марта 2012

Кроме того,

where myDate between some_date and some_other_date

может помочь вам в других подобных ситуациях.

0 голосов
/ 06 марта 2012

Вы можете использовать функцию date_add для достижения этой цели

Пример:

x_date between DATE_ADD(NOW(), INTERVAL -1 MONTH) and NOW()
...