Sql 根据日期选择最近的记录
我正在尝试创建一个select查询,根据日期返回表中最近的记录。基本上,无论哪一行的[Date]字段最接近当前日期 样本数据: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
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)