同一张表中的 SQL DATE 比较
Posted
技术标签:
【中文标题】同一张表中的 SQL DATE 比较【英文标题】:SQL DATE Comparison within same table 【发布时间】:2020-10-07 20:23:54 【问题描述】:我有一个包含以下数据的 SQL 表。我需要将“B 列”中的日期与“C 列”中存在的所有日期进行比较,并从“C 列”中选择最接近“B 列”中可用日期但不应大于最大/分钟的日期“C 列”中的所有可用日期。
我希望得到如下结果。我试过 BETWEEN , DATEDIFF SQL 关键字,但没有任何帮助。任何帮助将不胜感激。
【问题讨论】:
您使用的是哪个 dbms? (在日期/时间方面,许多产品远不符合 ANSI SQL。) SQL Server 管理工作室 2008 Management Studio 不是 DBMS……它是一个客户端界面。运行select @@version
。请将您的尝试添加到问题中。
建议您编辑问题以使用真实的列名,以便更好地了解您要做什么。这会有所帮助...
【参考方案1】:
SQL Server 中获取两个日期时间差的函数是DATEDIFF
。您可以告诉它以分钟、秒或其他方式获得差异。从差值中取绝对值,因为您不知道两个日期时间中哪个更早,哪个更晚。使用TOP
获取差异最小的行。
select top(1) *
from mytable
order by abs(datediff(second, b, c));
【讨论】:
以上是关于同一张表中的 SQL DATE 比较的主要内容,如果未能解决你的问题,请参考以下文章