gpt4 book ai didi

SQL 选择在日期范围内年龄为 17 岁的用户

转载 作者:行者123 更新时间:2023-12-05 01:08:37 26 4
gpt4 key购买 nike

选择在某个日期范围内(开始和结束日期)年满 17 岁的用户--

谢谢大家!

用户

  • id
  • 生日

  • 示例:
  • User_1 出生日期 09/28/1996
  • User_2 生日 08/25/1996
  • User_3 生日 07/28/1995
  • User_4 生日 05/25/1995

  • 如果日期范围是 从 03/05/2013 结束日期 6/05/2013
    *User_1 和 User_2 出现是因为他们在该时间段内满足 17 岁的标准*

    然而

    如果范围是 从 02/10/2012 截止日期 06/05/2013
    所有用户都应该出现,因为他们在日期范围内的某个时间点都是 17 岁

    我曾尝试使用 Datepart() 但我无法清楚地想出我想要的答案
    Select u.id, u.birthdate
    From Users u
    where convert(varchar,DATEPART(MM,u.birthdate))<=DATEPART(MM,'03/05/2013')

    在大家的帮助下我得出了一个结论
    DATEADD(YY,17,birthdate) between @from and @end

    最佳答案

    这些应该这样做;

    SELECT * FROM users 
    WHERE birthdate BETWEEN DATEADD(year, -18, '2013-03-05') -- lo date of range
    AND DATEADD(year, -17, '2013-06-05'); -- hi date of range

    SELECT * FROM users
    WHERE birthdate BETWEEN DATEADD(year, -18, '2012-02-10') -- lo date of range
    AND DATEADD(year, -17, '2013-06-05'); -- hi date of range

    An SQLfiddle to test with .

    请注意,User_1 在 09/28/2013 和 User_2 在 08/25/2013 变为 17,因此它们都不(或不应)包含在任一范围内。

    关于SQL 选择在日期范围内年龄为 17 岁的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16947074/

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