MYSQL php日期过滤器

时间:2017-04-23 20:50:44

标签: php mysql

我有一个关于在mysql中执行此过滤器的问题。 我有3个约会的日期。

1-start date; Ex: 10-04-2017
2-end date; Ex: 04-20-2017
3-date completion; Ex 23-04-2017

如果订单在开始日期和结束日期之间交付,则按时完成并记录完成日期; 但是,如果订单在记录的日期高于正确的结束日期后交付? 所以我想过滤并列出那些迟交的订单。 我该怎么办?

1 个答案:

答案 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

希望这能解决你的问题。