当前位置: 首页 > 知识库问答 >
问题:

mysql基于两列获取两个日期之间的行

夔庆
2023-03-14

我的桌子有这样的结构

id | date_birth | date_marriage
1  | 1970-01-24 | 2000-05-14
2  | 1979-05-08 | 2008-08-12

如何在mysql中获取上述数据的两个日期之间的事件(日期比较与年份无关)。例如,如果start_date是2014-05-01,结束日期是2014-05-20,则输出应该是

id | event
1  | married on 2000-05-14
2  | born on 1979-05-08

更新:如果同一个人的结婚日期和出生日期都在提供的日期范围内,则输出应包含该人的两列

(抱歉我的英语不好)

共有1个答案

雷浩思
2023-03-14

作为对您的评论的回应,如果任何一个日期匹配,您可以通过使用联合来获得两行。

您可以通过转换为不包含年份的格式来检查日期,例如%m%d。请注意,格式应该是可排序的(最重要的数字优先),以便比较工作。

select  *
from    YourTable
where   date_format(date_birth,'%m%d') between '0501' and '0520'
union all
select  *
from    YourTable
where   date_format(date_marriage,'%m%d') between '0501' and '0520'
 类似资料:
  • 问题内容: 使用标准的mysql函数可以编写查询,该查询将返回两个日期之间的天数列表。 例如,给定2009-01-01和2009-01-13,它将返回一个具有以下值的列表: 编辑:看来我还不清楚。我要生成此列表。我在数据库中存储了值(按日期时间),但希望将它们在左外部联接中汇总到上述日期列表中(我希望这种联接的某些右侧在几天内会为null并将对此进行处理) )。 问题答案: 我将使用此存储过程将所

  • 问题内容: 我有两个这样的表: 表格1 表2 我想从 Table1中 选择并插入 Table2中 。 例如: 在表1中,我有这个 在表2中,我想要这个 带有样本数据的表结构 问题答案: 感谢您的架构。它使处理您的问题变得容易。我对您的架构进行了一些更改以利用auto_increment 在这里,我在emp_leave_daywise表上添加了唯一约束,因为id整数上的主键不能确保记录不重复。 em

  • 问题内容: 在我的应用程序中,用户应从选择日期。问题是生成此列​​表。例如,我需要 2010年至2013年 或 6月至8月 之间的所有日期(期间可能是 day , month , year )。是否有任何方法可以获取该数据? 范例:我需要 2013年1月1* 日 至2013年1月1 日之间的日期 * 2013年1月1日 2013年2月1日 2013年3月1日 2013年4月1日 2013年5月1日

  • 问题内容: 在MySql数据库中有表 我的问题是,我要传递开始日期和结束日期,然后我将获得列日期,例如: 那么我将获得101,102,103 UserId的值。但是我出错了 问题答案: 这可能会更好: 也可能是保留字,对此不太确定。如果是这种情况,则您需要在其周围加反引号(前后应有一个`)

  • 你好,我有两列日期时间的多行,我想获取所有记录的两列之间的最新日期(最高)的行。请查看以下内容: 我想从两列(Date1和Date2)的所有记录中获取最高日期。从上表中,我想要第三行日期,因为这是两列所有记录中的最高日期(2021-06-16 20:04:24)。如果我们在2021-06-16 09:20:41之前更改date1列第3行,那么结果将是第2行,因为在date2中找到了最高日期记录。请

  • 问题内容: 我在一个项目中工作,我在Date中有两种类型。我想计算这两个日期之间的周数。日期可以是不同的年份。有什么好的解决方案吗? 我试图通过Joda-time来实现这一点,这在其他主题中已得到建议。 我不熟悉该库,但我尝试执行以下操作: 但这是完全错误的…有什么建议吗? 问题答案: 乔达时间很简单: