如何选择日期差异最大的列-MySQL

如何选择日期差异最大的列-MySQL,mysql,sql,database,Mysql,Sql,Database,我正试图找到第一次和最后一次阅读之间时间最长的行的产品EPC。表中可以有多个条目 无论我做什么,我都想不出如何获得这些信息 这是表格: CREATE TABLE IF NOT EXISTS `Track_Record` ( `longitude` varchar(15) NOT NULL , `lattitude` varchar(15) NOT NULL , `datetime` DATETIME NOT NULL, `EPC` varchar(200) NOT NULL ,

我正试图找到第一次和最后一次阅读之间时间最长的行的产品EPC。表中可以有多个条目

无论我做什么,我都想不出如何获得这些信息

这是表格:

CREATE TABLE IF NOT EXISTS `Track_Record` (
  `longitude` varchar(15) NOT NULL ,
  `lattitude` varchar(15) NOT NULL ,
  `datetime` DATETIME NOT NULL,
  `EPC` varchar(200) NOT NULL ,
  `ip` varchar(50) NOT NULL ,

  PRIMARY KEY  (ip, EPC, datetime),
  FOREIGN KEY (EPC) REFERENCES Product(EPC) ON DELETE CASCADE,
  FOREIGN KEY (ip) REFERENCES RFID_Reader(ip) ON DELETE CASCADE
);  
Track_Record (ip, longitude, lattitude, datetime, EPC)
VALUES
('000.111.222', '27.4667 S', '153.0333 E', '2014-11-05 18:56:46', '03.0000A89.00016F.000169DCD'),
('000.111.222', '27.4667 S', '153.0333 E', '2015-05-12 13:21:16', '03.0000A89.00016F.000169DCD'),
('555.666.777', '22.2783 N', '114.1747 E', '2012-07-19 12:22:16', '04.0000A89.00016F.000169DCD'),
('000.111.222', '27.4667 S', '153.0333 E', '2011-03-01 11:43:26', '03.0000A89.00016F.000169DCD'),
('555.666.777', '22.2783 N', '114.1747 E', '2014-09-02 18:53:14', '06.0000A89.00016F.000169DCD'),
('222.333.444', '59.3500 N', '18.0667 E', '2015-10-15 18:23:18', '04.0000A89.00016F.000169DCD'),
('333.444.555', '15.7833 S', '47.8667 W', '2015-02-22 19:53:16', '01.0000A89.00016F.000169DCD'),
('444.555.666', '51.5072 N', '0.1275 W', '2013-01-11 22:21:15', '04.0000A89.00016F.000169DCD');
这是表中的数据:

CREATE TABLE IF NOT EXISTS `Track_Record` (
  `longitude` varchar(15) NOT NULL ,
  `lattitude` varchar(15) NOT NULL ,
  `datetime` DATETIME NOT NULL,
  `EPC` varchar(200) NOT NULL ,
  `ip` varchar(50) NOT NULL ,

  PRIMARY KEY  (ip, EPC, datetime),
  FOREIGN KEY (EPC) REFERENCES Product(EPC) ON DELETE CASCADE,
  FOREIGN KEY (ip) REFERENCES RFID_Reader(ip) ON DELETE CASCADE
);  
Track_Record (ip, longitude, lattitude, datetime, EPC)
VALUES
('000.111.222', '27.4667 S', '153.0333 E', '2014-11-05 18:56:46', '03.0000A89.00016F.000169DCD'),
('000.111.222', '27.4667 S', '153.0333 E', '2015-05-12 13:21:16', '03.0000A89.00016F.000169DCD'),
('555.666.777', '22.2783 N', '114.1747 E', '2012-07-19 12:22:16', '04.0000A89.00016F.000169DCD'),
('000.111.222', '27.4667 S', '153.0333 E', '2011-03-01 11:43:26', '03.0000A89.00016F.000169DCD'),
('555.666.777', '22.2783 N', '114.1747 E', '2014-09-02 18:53:14', '06.0000A89.00016F.000169DCD'),
('222.333.444', '59.3500 N', '18.0667 E', '2015-10-15 18:23:18', '04.0000A89.00016F.000169DCD'),
('333.444.555', '15.7833 S', '47.8667 W', '2015-02-22 19:53:16', '01.0000A89.00016F.000169DCD'),
('444.555.666', '51.5072 N', '0.1275 W', '2013-01-11 22:21:15', '04.0000A89.00016F.000169DCD');
如果有人知道我是如何得到这些信息的,我将非常感谢你能提供的任何帮助

谢谢
Corey

听起来您需要每个
epc
max
min
之间的差异,因此:

select epc, max(`datetime`), min(`datetime`), timediff(max(`datetime`), min(`datetime`))
  from Track_Record
  order by timediff(max(`datetime`), min(`datetime`)) desc
  limit 1;
上述样本数据的结果:

+-----------------------------+---------------------+---------------------+--------------------------------------------+
| epc                         | max(`datetime`)     | min(`datetime`)     | timediff(max(`datetime`), min(`datetime`)) |
+-----------------------------+---------------------+---------------------+--------------------------------------------+
| 03.0000A89.00016F.000169DCD | 2015-10-15 18:23:18 | 2011-03-01 11:43:26 | 838:59:59                                  |
+-----------------------------+---------------------+---------------------+--------------------------------------------+
1 row in set, 1 warning (0.00 sec)

听起来您需要每个
epc
max
min
之间的差异,因此:

select epc, max(`datetime`), min(`datetime`), timediff(max(`datetime`), min(`datetime`))
  from Track_Record
  order by timediff(max(`datetime`), min(`datetime`)) desc
  limit 1;
上述样本数据的结果:

+-----------------------------+---------------------+---------------------+--------------------------------------------+
| epc                         | max(`datetime`)     | min(`datetime`)     | timediff(max(`datetime`), min(`datetime`)) |
+-----------------------------+---------------------+---------------------+--------------------------------------------+
| 03.0000A89.00016F.000169DCD | 2015-10-15 18:23:18 | 2011-03-01 11:43:26 | 838:59:59                                  |
+-----------------------------+---------------------+---------------------+--------------------------------------------+
1 row in set, 1 warning (0.00 sec)

听起来您需要每个
epc
max
min
之间的差异,因此:

select epc, max(`datetime`), min(`datetime`), timediff(max(`datetime`), min(`datetime`))
  from Track_Record
  order by timediff(max(`datetime`), min(`datetime`)) desc
  limit 1;
上述样本数据的结果:

+-----------------------------+---------------------+---------------------+--------------------------------------------+
| epc                         | max(`datetime`)     | min(`datetime`)     | timediff(max(`datetime`), min(`datetime`)) |
+-----------------------------+---------------------+---------------------+--------------------------------------------+
| 03.0000A89.00016F.000169DCD | 2015-10-15 18:23:18 | 2011-03-01 11:43:26 | 838:59:59                                  |
+-----------------------------+---------------------+---------------------+--------------------------------------------+
1 row in set, 1 warning (0.00 sec)

听起来您需要每个
epc
max
min
之间的差异,因此:

select epc, max(`datetime`), min(`datetime`), timediff(max(`datetime`), min(`datetime`))
  from Track_Record
  order by timediff(max(`datetime`), min(`datetime`)) desc
  limit 1;
上述样本数据的结果:

+-----------------------------+---------------------+---------------------+--------------------------------------------+
| epc                         | max(`datetime`)     | min(`datetime`)     | timediff(max(`datetime`), min(`datetime`)) |
+-----------------------------+---------------------+---------------------+--------------------------------------------+
| 03.0000A89.00016F.000169DCD | 2015-10-15 18:23:18 | 2011-03-01 11:43:26 | 838:59:59                                  |
+-----------------------------+---------------------+---------------------+--------------------------------------------+
1 row in set, 1 warning (0.00 sec)