当前位置: 首页 > 面试题库 >

SQL查询显示最近的日期?

胡璞瑜
2023-03-14
问题内容

我试图弄清楚如何编写一个MySQL查询,该查询将返回日期最近的3个事件。

这是我的桌子:

EVENT_ID    EVENT_NAME     EVENT_START_DATE(DATETIME)
1           test           2011-06-01 23:00:00
2           test2          2011-06-03 23:00:00
3           test3          2011-07-01 23:00:00
4           test4          2011-08-09 23:00:00
5           test5          2011-06-02 23:00:00
6           test6          2011-04-20 23:00:00

因此,查询结果应为ID的1,2,5,因为它们是与当前日期相比最接近的ID。

编辑: 查询应该只找到将来的事件。


问题答案:
SELECT event_id 
FROM Table 
ORDER BY ABS( DATEDIFF( EVENT_START_DATE, NOW() ) ) 
LIMIT 3

ABS()意味着1天前的事件与将来1天的事件一样接近。如果您只想要尚未发生的事件,请执行

SELECT event_id 
FROM Table 
WHERE EVENT_START_DATE > NOW() 
ORDER BY EVENT_START_DATE 
LIMIT 3


 类似资料:
  • 任何C#/T-SQL大师可以帮助我吗?我有一个困难的时间试图将这个C#代码转换为T-SQL。 以下是C代码: 以下是实施方案: 这个想法是您有一个列表(C#端的DayOfWeekList),该列表可以填写一周中的任何一天。可能是星期一和星期二,可能是星期二、星期三、星期五和星期六,等等。 有一个传入的DateTime参数正在与该列表进行比较,并根据其在列表中最接近的工作日进行更新。 例如,如果传入

  • 问题内容: 我有以下postgresql语法,该语法返回WHERE session_date与$ date_string匹配的值 问题是有时$ date_string在表中不可用,所以我想返回最接近$ date_string的日期。 有什么想法可以做到这一点吗? 问题答案: 如果您想要最近的日期,请按照以下方式进行操作: 之后的最接近日期使用类似的逻辑。 对于最接近的一方:

  • 问题内容: 如果我有一个表列,,, 并且我想运行一个sql查询以获取数据集中最早的记录。 您可以在查询中执行此操作,还是需要在事实之后循环? 我想获取该记录的所有字段。 问题答案: 如果您只想要日期: 如果您需要所有信息: 尽可能避免循环。循环通常会导致游标,游标几乎从来没有必要,而且常常效率很低。

  • 问题内容: 所以我创建了一个集成脚本,但是由于某种原因它没有显示出正确的结果。我的查询是 结果中出乎意料的一行之一是这个 ID为11的组具有display_style_priority 2000而不是5200。它应显示具有display_style_priority 5200的用户组ID。这是该用户所在的排名最高的组。有人可以指出我做错了什么。 问题答案: 尝试将GROUP BY更改为 其他大多数

  • 问题内容: 我使用带有Castle ActiveRecord的 ASP.NET MVC作为我的持久层。 我想知道是否可以显示正在MySQL服务器上执行的SQL查询。 我知道在Web应用程序中可以使用Castle XML配置文件中的“ show_sql”属性,但是我不知道如何使用Web应用程序来实现它,因为我无权访问控制台。 我想我可以使用log4net来做到这一点,但是在使用Google进行了一些

  • 问题内容: 我正在尝试在SQL Server Profiler(2005)中查看Linq生成的SQL到SQL。 我可以看到从linq到sql以外的任何其他设备发送到服务器的sql。 我敢打赌,我需要更改跟踪的事件选择,但不确定要选择什么。 我目前仅选择此选项:SQL:StmtCompleted-TextData和SPID 我既不想使用数据上下文日志记录,也不想使用SQL Debug Visuali