gpt4 book ai didi

sql - 查找 2 个日期之间的记录,如果找不到,则返回日期最小的记录

转载 作者:行者123 更新时间:2023-12-04 14:09:26 25 4
gpt4 key购买 nike

我有一张 table

Name       DateOfBirth
--------------------------------
Ramesh 17/04/1983

Pavan 16/03/1980

Rakesh 18/03/1975

Nadeem 19/05/1974

Kalam 20/08/2973

我正在写一个SP,伪代码如下:

我将日期作为输入参数传递给此 SP

  1. 如果找到@InputDate,SP 应该返回记录
  2. 如果@InputDate 小于表中的最小日期,则应返回具有最小日期的记录
  3. 如果未找到@InputDate 但它位于列中的最小值和最大值之间,则应返回紧随其后的记录

    • 是否可以将逻辑写在一条语句中?
    • 完成此任务的最优化方法

最佳答案

我认为下面的查询(在 MySQL 中)提供了您想要的内容:

SELECT Name, DateOfBirth
FROM mytable
WHERE DateOfBirth >= @mydate
ORDER BY DateOfBirth LIMIT 1

案例 1,输入:

@mydate = '1972-03-16'

输出:

Name,   DateOfBirth
-------------------
Nadeem, 1974-05-19

案例 2,输入:

@mydate = '1980-03-16'

输出:

Name,   DateOfBirth
-------------------
Pavan, 1980-03-16

案例 3,输入:

@mydate = '1982-03-16'

输出:

Name,    DateOfBirth
-------------------
Ramesh, 1983-04-17

案例 4,输入:

@mydate = '2982-03-16'

输出:

Name,    DateOfBirth
-------------------
No records returned

关于sql - 查找 2 个日期之间的记录,如果找不到,则返回日期最小的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43364276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com