首页 > 解决方案 > 同一张表中的 SQL DATE 比较

问题描述

我有一个包含以下数据的 SQL 表。我需要将“B 列”中的日期与“C 列”中存在的所有日期进行比较,并从“C 列”中选择最接近“B 列”中可用日期但不应大于最大/分钟的日期“C 列”中可用的所有日期。

在此处输入图像描述

我期望得到如下结果。我试过 BETWEEN , DATEDIFF SQL 关键字,但没有任何帮助。任何帮助将不胜感激。

预期产出

标签: sqlsql-serverdatedatediff

解决方案


SQL Server 中获取两个日期时间差的函数是DATEDIFF. 您可以告诉它以分钟、秒或其他方式获得差异。从差值中取绝对值,因为您不知道两个日期时间中哪个更早,哪个更晚。用于TOP获取差异最小的行。

select top(1) *
from mytable 
order by abs(datediff(second, b, c));

推荐阅读