SQL 命令:从表中获取最小日期和小时

Posted

技术标签:

【中文标题】SQL 命令:从表中获取最小日期和小时【英文标题】:SQL command: get min date and hour from table 【发布时间】:2013-07-28 17:32:05 【问题描述】:

TblAzmon: 代码(pk) |姓名 |日期 |一小时 | ADcode_fk -------------------------------------------------- -------------------------- 1 系统 1358/05/05 08:00 2 2 图形 1389/05/05 08:00 1 3 模拟 1392/05/06 07:30 1 4 数学 1389/05/05 09:00 1

我希望管理器(ADcode)的输出日期和时间最小。

所需的输出:[其中 ADcode_fk='1']

代码 |日期 |一小时 ---------------------------------- 2 1389/05/05 08:00

SQL 命令:

select Acode,Adate,Ahour from TblAzmon<br>
where Adate in (select min(Adate) from TblAzmon where ADcode_fk='1')
And Ahour in (select min(Ahour) from TblAzmon where ADcode_fk='1')

输出:--------->0 行 - NULL

提示:所有列都是文本类型。除了 Acode 列。

请编写 SQL 代码。

【问题讨论】:

其他人已经提供了答案。您的查询的问题是您分别找到了最短日期和最短小时。碰巧没有一行具有 both 值。 【参考方案1】:

你可以这样做,使用 order bytop

select top 1 *
from tblAzmon a
order by Adate, Ahour

【讨论】:

如果我打算经常执行查询,我不会使用它。如果你不这样做,那很好。【参考方案2】:

假设您指的是日期和时间的最早组合,您可以使用order bytop 来做到这一点:

select top 1 *
from tblAzmon a
order by Adate, Ahour

【讨论】:

【参考方案3】:

您的 SQL 不起作用,因为您一次选择了 minHour 和 minDate,并且由于 min(Date) 没有 min(Hour),因此您返回 0 行。

你需要将它们分开并像这样一一选择它们。有了这个你应该可以自己做=)

SELECT Acode,Adate,min(Ahour) 
FROM (Select Acode,min(Adate),Ahour FROM TblAzmon WHERE ADcode_fk='1') t
WHERE ADcode_fk='1'

【讨论】:

以上是关于SQL 命令:从表中获取最小日期和小时的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 LINQ 从表中获取最新条目?

SQL 从表中选择并获取表名

SQL - 仅从表中获取并非所有值都是空值的列

使用 sql,spark 根据某些条件从表中获取输出

从数据库中获取时间段

SQL ORACLE 从多个日期时间行中获取周数