phpmyadmin日期查询

时间:2014-04-29 20:30:39

标签: mysql sql phpmyadmin

我有一个包含故障记录的数据库。我正在尝试创建一个查询来返回超过30天前报告的事件。

这是我使用的代码:

SELECT  `IncidentNumber`,  
        `DateReported`,  
        `ReportedBy`,  
        `AffectedSystem`, 
        `EquipmentName`,  
        `SerialNumberOfAffectedPart`, 
        `Notes`,  
        `JobStatus` 
FROM    `incident_tbl` 
WHERE   `JobStatus` != 'Closed'
AND     `DateReported` < 'DATEADD(day, -30, GETDATE())'
LIMIT   0 , 100

我在这里以及互联网上的其他地方阅读过很多帖子,并且不知道为什么这样做不会起作用。

代码只返回所有打开的事件。

非常感谢任何帮助。

谢谢

2 个答案:

答案 0 :(得分:1)

 SELECT  
`IncidentNumber` ,  
`DateReported` , 
 `ReportedBy` ,  
`AffectedSystem` , 
`EquipmentName`, 
 `SerialNumberOfAffectedPart` , 
 `Notes` , 
 `JobStatus` 
FROM  `incident_tbl` 
WHERE  
`JobStatus` !=  'Closed' 
AND  `DateReported` <  DATE_SUB( NOW(), INTERVAL 30 day)
LIMIT 0 , 100

答案 1 :(得分:0)

在报价之外! MySQL将其解释为实际字符串,并且永远不会调用该函数来输出正确的日期范围。

使用DATE_SUB进行减法!

SELECT  `IncidentNumber` ,  `DateReported` ,  `ReportedBy` ,  `AffectedSystem` , `EquipmentName`,  `SerialNumberOfAffectedPart` ,  `Notes` ,  `JobStatus` 
FROM  `incident_tbl` 
WHERE  `JobStatus` !=  'Closed'
AND  `DateReported` < DATE_SUB( NOW(), INTERVAL 30 DAY )
LIMIT 0 , 100