MSSQL中获取里当前时间最近的数据(个人Coding 的时候用到了,记一下)

本文介绍了一种通过SQL查询来找出数据库表中离当前时间最近的数据记录的方法。通过计算每条记录的时间戳与当前时间的差值,并将其转换为浮点型数值后取绝对值,可以有效地找出时间上最接近的一条记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在某些数据中获取离当前时间最近的数据

--测试数据


CREATE TABLE #testTable(id INT,addTime DATETIME)
INSERT INTO #testTable
SELECT 1,'2013-7-8  12:00:00' UNION ALL
SELECT 3,'2013-04-23  10:00:00' UNION ALL
SELECT 4,'2013-04-24 12:00:00' UNION ALL
SELECT 5,'2013-04-24 16:00:00'
SELECT * FROM #testTable
--思路,获取所有时间与当前时间之隔,转换为 Float 类型之后取绝对值,最小的数据就是最近的。
SELECT TOP 1 * FROM #testTable ORDER BY ABS(CAST((addTime - GETDATE())as FLOAT)) ASC


DROP TABLE #testTable
/*
当前时间是 14:33 事实离 16:00 才是最近的。
id          addTime
----------- -----------------------
5           2013-04-24 16:00:00.000


(1 row(s) affected)


*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值