我有一个关于在mysql中执行此过滤器的问题。 我有3个约会的日期。
1-start date; Ex: 10-04-2017
2-end date; Ex: 04-20-2017
3-date completion; Ex 23-04-2017
如果订单在开始日期和结束日期之间交付,则按时完成并记录完成日期; 但是,如果订单在记录的日期高于正确的结束日期后交付? 所以我想过滤并列出那些迟交的订单。 我该怎么办?
答案 0 :(得分:0)
假设您有一个订单表,其中包含您在帖子中提到的3个不同日期。假设您的订单表有四列(id,startDate,endDate,compDate)以保持简单。现在,您的MySQL数据库的SQL名称为:
CREATE TABLE `orders` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`startDate` datetime DEFAULT NULL,
`endDate` datetime DEFAULT NULL,
`compDate` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
假设您的订单表中有三个记录,其中两个是延迟订单,超过了endDate:
/*Data for the table `orders` */
insert into `orders`(`id`,`startDate`,`endDate`,`compDate`) values
(1,'2017-04-10 00:00:00','2017-04-20 00:00:00','2017-04-23 00:00:00'),
(2,'2017-04-10 00:00:00','2017-04-20 00:00:00','2017-04-19 00:00:00'),
(3,'2017-04-10 00:00:00','2017-04-20 00:00:00','2017-04-22 00:00:00');
现在您需要使用filter(compDate> endDate)运行以下简单的SQL语句来检查那些迟交的订单:
SELECT * FROM orders WHERE compDate > endDate;
它将为您提供两个ID为1和3的迟交记录(即延迟订单。)
Click here to see the Sqlyog query snapshot that displays late orders
希望这能解决你的问题。