一尘不染

Mysql-最近30天

sql

我有一张有两个柱子的桌子。

  • 第一列是存储为以下日期的日期:(示例): 01/01/2015 00:00:00
  • 秒列是一个数字:(例如):500

我写了一条SQL语句,看起来像这样:

select * 
from cc_open_incident_view
WHERE (DATE =(NOW() - INTERVAL 1 MONTH))

如果我执行此语句,它不会检索任何数据,而且我也找不到错误

我只需要查询的最后一个月(过去30天)的数据。

将不胜感激..

根据OP注释进行编辑:

日期被保存为日期,并且可以使用,但是我表中的列日期已存储了未来5年的日期,并且它还显示如下数据:(09.03.2016也就是明天)。有什么办法只显示从开始30 days到结束的日期today吗?


阅读 126

收藏
2021-03-17

共1个答案

一尘不染

编辑:根据OP更改查询

select * 
from cc_open_incident_view
WHERE date between (CURDATE() - INTERVAL 1 MONTH ) and CURDATE()

上一个答案:

如果日期另存为,date则使用此日期

select * 
from cc_open_incident_view
WHERE date >= (CURDATE() - INTERVAL 1 MONTH )

如果日期另存为字符串,则使用该日期(假设它在dd/mm/yyyy ...

select * 
from cc_open_incident_view
WHERE STR_TO_DATE(date ,''%d/%m/%y %h:%i:%s')>= (CURDATE() - INTERVAL 1 MONTH )
2021-03-17