我是SQL日常操作的新手。
但是,我需要通过X date<返回记录过滤器的查询。或者> 30天或类似。
我现在有这个问题:
SELECT nome_prodotto,quantita
FROM prodotti
LEFT JOIN acquisti
ON prodotti.id_prodotto = acquisti.id_prodotto
我的目标是获取过去30天内未购买的产品或类似产品
答案 0 :(得分:2)
WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) =< your_date;
答案 1 :(得分:1)
如果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
的结果集中的任何行都表示该期间未购买该产品。
答案 2 :(得分:0)
您可以使用date_add
功能来实现此目标
例如:
x_date between DATE_ADD(NOW(), INTERVAL -1 MONTH) and NOW()
答案 3 :(得分:0)
另外,
where myDate between some_date and some_other_date
可能在其他类似情况下帮助您。