我有一个包含故障记录的数据库。我正在尝试创建一个查询来返回超过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
我在这里以及互联网上的其他地方阅读过很多帖子,并且不知道为什么这样做不会起作用。
代码只返回所有打开的事件。
非常感谢任何帮助。
谢谢
答案 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