在MYSQL中获取其结果声明为比当前日期早12天的学生记录

为此,您需要比较并找到学生的当前日期和结果日期之间的差异。可以使用AND运算符以及DATEDIFF()

让我们首先创建一个表-

mysql> create table DemoTable1547
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentName varchar(20),
   -> StudentMarks int,
   -> StudentResultDeclareDate datetime
   -> );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable1547(StudentName,StudentMarks,StudentResultDeclareDate) values('Chris',56,'2019-10-13 13:00:00')
   -> ;
mysql> insert into DemoTable1547(StudentName,StudentMarks,StudentResultDeclareDate) values('Bob',60,'2019-10-13 12:00:00');
mysql> insert into DemoTable1547(StudentName,StudentMarks,StudentResultDeclareDate) values('Mike',45,'2019-10-13 14:00:00');
mysql> insert into DemoTable1547(StudentName,StudentMarks,StudentResultDeclareDate) values('Carol',78,'2019-10-01 14:00:00');

使用select语句显示表中的所有记录-

mysql> select * from DemoTable1547;

这将产生以下输出-

+-----------+-------------+--------------+--------------------------+
| StudentId | StudentName | StudentMarks | StudentResultDeclareDate |
+-----------+-------------+--------------+--------------------------+
|         1 | Chris       |           56 | 2019-10-13 13:00:00      |
|         2 | Bob         |           60 | 2019-10-13 12:00:00      |
|         3 | Mike        |           45 | 2019-10-13 14:00:00      |
|         4 | Carol       |           78 | 2019-10-01 14:00:00      |
+-----------+-------------+--------------+--------------------------+
4 rows in set (0.00 sec)

当前日期如下-

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2019-10-13 |
+------------+
1 row in set (0.00 sec)

以下是查询以获取其结果在当前日期之前12天声明的学生记录的查询-

mysql> select * from DemoTable1547 where datediff(curdate(),StudentResultDeclareDate) >=12 and StudentMarks > 50;

这将产生以下输出-

+-----------+-------------+--------------+--------------------------+
| StudentId | StudentName | StudentMarks | StudentResultDeclareDate |
+-----------+-------------+--------------+--------------------------+
|         4 | Carol       | 7          8 | 2019-10-01 14:00:00      |
+-----------+-------------+--------------+--------------------------+
1 row in set (0.00 sec)