为此,您可以使用聚合函数MIN()
和MAX()
。让我们首先创建一个表-
mysql> create table DemoTable(AdmissionDate date);
使用插入命令在表中插入一些记录-
mysql> insert into DemoTable values('2019-01-21'); mysql> insert into DemoTable values('2018-12-31'); mysql> insert into DemoTable values('2016-11-01'); mysql> insert into DemoTable values('2019-04-11'); mysql> insert into DemoTable values('2016-02-01');
使用select语句显示表中的所有记录-
mysql> select *from DemoTable;
这将产生以下输出-
+---------------+ | AdmissionDate | +---------------+ | 2019-01-21 | | 2018-12-31 | | 2016-11-01 | | 2019-04-11 | | 2016-02-01 | +---------------+ 5 rows in set (0.00 sec)
以下是在单个查询中检索MIN和MAX日期的查询-
mysql> select MIN(AdmissionDate) AS MinDate,MAX(AdmissionDate) AS MaxDate from DemoTable;
这将产生以下输出-
+------------+------------+ | MinDate | MaxDate | +------------+------------+ | 2016-02-01 | 2019-04-11 | +------------+------------+ 1 row in set (0.00 sec)
问题内容: 任何人都可以从官方MySQL文档中澄清这一点 使用索引…查找特定索引列key_col的MIN()或MAX()值。这由预处理器优化,该预处理器检查是否在索引中在key_col之前出现的所有关键部分上使用WHERE key_part_N =常量。在这种情况下,MySQL对每个MIN()或MAX()表达式执行一次键查找,并将其替换为常量。如果所有表达式都用常量替换,查询将立即返回。例如: S
你好,我有两列日期时间的多行,我想获取所有记录的两列之间的最新日期(最高)的行。请查看以下内容: 我想从两列(Date1和Date2)的所有记录中获取最高日期。从上表中,我想要第三行日期,因为这是两列所有记录中的最高日期(2021-06-16 20:04:24)。如果我们在2021-06-16 09:20:41之前更改date1列第3行,那么结果将是第2行,因为在date2中找到了最高日期记录。请
我尝试创建一个查询,显示入住和退房日期之间的可用酒店。此外,当我为特定房间预订时,我将他们的预订列设置为1。这意味着,在现实生活中,当结账日期到来时,触发函数将该预订列设置成0。 如果酒店的所有房间都已预订(预订=1),并且这些房间的签入-退房日期是特定日期(签入-退房输入),则不要将该酒店放在列表中。我的查询不会显示我想要的结果。 查询:输入:国家(状态)、签入和签出。 当我运行查询时,它总是显
我需要激发一个查询来检索from_date的最小值和to_date的最大值。我的数据如下: 但是,当我激发以下查询时: 如您所见,我希望结果中的to_date为NULL。但Max函数不会发现我为空。那么我有什么替代方法使我返回空值呢?此外,to_date列可能不是NULL。在这种情况下,我需要非空的适当日期。谁能帮帮忙吗?
问题内容: 在将其标记为重复之前,请先看一下此SQLFiddle。 我有这个架构: 子查询: 结果: 现在,这里最棘手的部分是此查询的结果: 这是: 应该是这样的: 您认为查询中有什么问题? 问题答案: 而不是您可以简单地使用相同。也可以改用。 输出: 看到这个SQLFiddle 编辑: 如果要使用它,则必须使用如下子查询: 看到这个SQLFiddle 编辑2: 除了在外部查询中使用之外,您也可以
问题内容: 这个问题已经在这里有了答案 : 获取两个日期之间的日期列表 (20个答案) 7年前关闭。 我想通过选择查询将日期列表放在两个日期之间。例如: 如果我给出“ 2012-02-10”和“ 2012-02-15”,则需要结果。 我怎样才能得到? 问题答案: 尝试: -日期范围可长达近300年。 [根据UrvishAtSynapse的建议编辑进行更正。]