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

列出未来14天内所有生日的SQL

宋和颂
2023-03-14
问题内容

我有一个MySQLmember表,该表的DOB字段以DATE格式存储所有成员的生日(注意:它具有“年份”部分)

我试图找到正确的SQL来:

  • 列出未来14天内的所有生日

和另一个查询到:

  • 列出过去14天内的所有生日

通过以下方式直接比较当前日期:

(DATEDIFF(DOB, now()) <= 14 and DATEDIFF(DOB, now()) >= 0)

由于当前年份和DOB年份不同,因此不会获取任何内容。

但是,将DOB转换为“今年”根本不起作用,因为今天可能是1月1日,而候选人的DOB可能是12月31日(反之亦然)

如果您能伸出援助之手,那就太好了,非常感谢!:)


问题答案:

我首先想到的是,仅使用DAYOFYEAR并取得差价就容易了,但实际上在开始/结束时有点技巧。然而:

WHERE 
DAYOFYEAR(NOW()) - DAYOFYEAR(dob) BETWEEN 0 AND 14 
OR DAYOFYEAR(dob) - DAYOFYEAR(NOW())  > 351

应该起作用,具体取决于您对leap年的关心程度。一个“更好”的答案可能是从dob中提取DAY()和MONTH()并使用MAKEDATE()建立当前(或潜在的过去/之后)年份的日期并与之进行比较。



 类似资料:
  • 问题内容: 我的机器上有三个接口,我想使用Java-API来获取mac地址。 我使用此代码。 但是该代码打印出来, 但是错过了eth0 。 我的操作系统Ubuntu,任何帮助。 更新资料 o / p().. blank(empty) 。 Java版本“ 1.7.0_21” Java™SE运行时环境(内部版本1.7.0_21-b11)JavaHotSpot(TM)64位服务器VM(内部版本23.21

  • 问题内容: 我正在使用PHPMyadmin,并使用PHP将值放入数据库中。我使用时间戳存储产品的到期日期,如下所示,例如: 我要选择所有到期日期等于今天的日期加上8天的日期(例如上面的那一天) 我也想在一个单独的页面中选择所有过期日期等于今天日期+ 2周的内容,如果有人可以帮助我,将不胜感激! 问题答案: 您可以使用以下查询来做到这一点: 您可以使用过去的日期。

  • 问题内容: 伙计们,我需要列出上个月的所有日期,如下所示 请让我知道是否有比此查询更好的方法。 还请让我知道此查询的问题,它说 “缺少右括号” 强调文字 问题答案: 听起来你想要这样的东西

  • 我使用YouTube数据API从一个频道获取视频信息。API响应不包括上传到相应频道的所有视频。 这是频道(现在有6个视频):https://www.youtube.com/channel/UCdSjDEx46aNP0oKPN_J6hOA/videos 视频列表(现在):https://i.ibb.co/K91bJxS/image.png 这是我的API调用:https://www.googlea

  • 我有这样的桌子结构 学生 主题 马克斯 要求是,列出所有通过考试的学生( 不知道要添加什么,如果条件 预期产出

  • 问题内容: 有没有一种方法可以获取实例中所有数据库中所有存储过程中引用的所有列和表?输出应为: 问题答案: 这将得到您想要的列表,但是,如果您在动态SQL中嵌入了此类列引用(并且可能找不到依赖于延迟名称解析的引用),则将无济于事。SQL Server不会解析存储过程的文本以提供DMV输出。 现在尝试使用子句来处理在同一服务器上具有不同归类的数据库的情况。 如果您的数据库处于80兼容模式,那么该语法