Sql 根据日期选择最近的记录

Sql 根据日期选择最近的记录,sql,sql-server,Sql,Sql Server,我正在尝试创建一个select查询,根据日期返回表中最近的记录。基本上,无论哪一行的[Date]字段最接近当前日期 样本数据: ID Content Date -------------------------------------------- 1 1050 Test Values 2013-11-27 10:46:24.900 2 1051 Test Test 2013-11-27 10:47:43.150 3 1

我正在尝试创建一个select查询,根据日期返回表中最近的记录。基本上,无论哪一行的[Date]字段最接近当前日期

样本数据:

    ID       Content         Date
--------------------------------------------
1   1050    Test Values    2013-11-27 10:46:24.900
2   1051    Test Test      2013-11-27 10:47:43.150
3   1057    Test Testx2    2013-11-27 10:48:22.820
我只想返回这些值

    ID       Content         Date
--------------------------------------------
1   1057    Test Testx2    2013-11-27 10:48:22.820

谢谢

您可以尝试以下查询:

SELECT TOP 1 *
FROM Table
ORDER BY [Date] DESC

您可以尝试以下查询:

SELECT TOP 1 *
FROM Table
ORDER BY [Date] DESC
这将返回从最高日期到最低日期排序后第一条记录中的所有字段。本质上,这将返回最新的条目

SELECT TOP 1  ID,Content,Date FROM <TABLE_NAME> ORDER BY Date

这将返回从最高日期到最低日期排序后第一条记录中的所有字段。基本上,这将返回最新的条目。

或者,如果您希望查询在任何DBMS(而不仅仅是SQL Server)上工作,请使用:

SELECT TOP 1  ID,Content,Date FROM <TABLE_NAME> ORDER BY Date


或者,如果希望查询在任何DBMS(而不仅仅是SQL Server)上运行,请使用:


您使用的数据库引擎是什么?我们使用的是SQL Server 2008尝试:从ORDER BY Date中选择TOP 1*,DESCDate不是列的有效名称;它是一个类型名。SQL并非如此sensitive@wildplasser我只是以[日期]为例。我的实际列名是[Timestamp]。您使用的数据库引擎是什么?我们使用的是SQL Server 2008尝试:按日期从ORDER中选择TOP 1*。DESCDate不是有效的列名;它是一个类型名。SQL并非如此sensitive@wildplasser我只是以[日期]为例。我的实际列名是[Timestamp]。不,这会给出最早的条目,不会起作用,因为您没有指定要选择的字段或*@Thorten谢谢!我花了几秒钟在ManagementStudio中检查它,因为我不记得TOPYep的语法,这很有效。我只是将*改为我需要的字段。使用括号表示日期,在SQL Server 2008+中是保留字否,这会给出最旧的条目,并且不会起作用,因为您没有指定要选择的字段或*@Thorten谢谢!我花了几秒钟在ManagementStudio中检查它,因为我不记得TOPYep的语法,这很有效。我只是将*改为我需要的字段。使用括号表示日期,是SQL Server 2008中的保留字+
select * from t where Date = (select max(Date) from t)