Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获取日期差大于7的项目总数_Php_Mysql - Fatal编程技术网

Php 如何获取日期差大于7的项目总数

Php 如何获取日期差大于7的项目总数,php,mysql,Php,Mysql,我必须做一个mysql语句,以获得与今天日期差大于7的项目总数(表示今天-7) 这是我目前的声明: SELECT COUNT(*) FROM complaints WHERE complaint_status = 'OPEN' AND complaint_regdate <= curdate() complaint_regdate >= DATE_SUB(curdate(),INTERVAL 7 day) 选择 计数(*) 从…起

我必须做一个mysql语句,以获得与今天日期差大于7的项目总数(表示今天-7)

这是我目前的声明:

SELECT 
    COUNT(*)
FROM 
    complaints 
WHERE 
    complaint_status = 'OPEN' AND 
    complaint_regdate <= curdate()
    complaint_regdate >= DATE_SUB(curdate(),INTERVAL 7 day)
选择
计数(*)
从…起
抱怨
哪里
投诉状态=‘打开’和
投诉日期=日期(curdate(),间隔7天)
我得到这个错误:


您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行“complaint\u regdate>=DATE\u SUB(curdate(),INTERVAL 7 day)”附近使用的正确语法,您的sql中缺少AND运算符

SELECT COUNT(*) FROM complaints WHERE complaint_status = 'OPEN' AND complaint_regdate <= curdate() AND complaint_regdate >= DATE_SUB(curdate(),INTERVAL 7 day)
从投诉中选择计数(*),其中投诉状态为“打开”,投诉日期为日期子项(curdate(),间隔7天)

听起来,您要求查询以查找日期超过7天的计数。上面列出的当前查询显示了过去7天内所有内容的计数。以下是过去7天的查询:

SELECT COUNT(*) FROM complaints WHERE complaint_status = 'OPEN' AND complaint_regdate < DATE_SUB(curdate(),INTERVAL 7 day)
从投诉中选择计数(*),其中投诉状态为“打开”,投诉登记日期为
您可以使用BETWEEN运算符进行此操作

SELECT COUNT(*) 
FROM complaints 
WHERE complaint_status = 'OPEN' 
  AND complaint_regdate < (CURDATE() - INTERVAL 7 day)
选择计数(*)
投诉
其中投诉状态=‘打开’
和投诉登记日期<(CURDATE()-间隔7天)
注意,您不需要DATE_子函数,只需使用普通减法即可。
此外,只有当您的
投诉记录日期
是日期列时,这些选项才有效。如果是DATETIME列,则需要使用NOW()而不是CURDATE(),或者只提取字段值的日期部分。

当前语句有什么问题?我已使用错误编辑了我的问题您的问题中的查询在逻辑上是错误的(它不执行您要求执行的操作,在空格更改后应该很明显)并包含一个语法错误,在提问之前应先修复该错误。和。。您刚刚编辑了问题,插入了缺少的,这使得错误消息完全不相关,因为它不能来自问题中现在的查询。-1。这是一个公平的问题,但当你得到答案时,你应该获取新信息并重试。即使解决方案不能完全解决您的问题,它也可能帮助您自己找到答案-这就是我们如何成为更好的程序员。@AD7six明白您的意思了。。。真的不想把这个平台搞砸。。。慢慢地,我会慢慢地了解..我得到了这个错误:
您的SQL语法有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行“complaint_regdate
它在7天内给我的时间不超过7天。@AbhilashShukla抱歉,误读了问题,更新了答案。非常感谢。另外,如果我想做一个月,我应该添加
间隔30天
还是其他有效的方法it@AbhilashShukla你可以使用间隔1个月。它给我7天内不超过7天的时间。@AbhilashShukla-你没有抓住这个答案的要点。它修复了您的一个错误;如果您有其他错误,您应该回复讨论这些错误的答案。(当然,一旦你修复了一个错误,你应该再次尝试,看看你是否能自己修复它——这是最好的学习方式!)。