mysql - 如何将数据库中的月份范围与两个日期相匹配?

标签 mysql sql date

假设我有一个表,其中包含一个 from_month (int,1-12)和一个 to_month (int,1-12)列,然后我还有另一个包含 from(int,unix 时间戳)和 to(int,unix 时间戳)列的表。

如何匹配 from_monthto_month 列包含我的 fromto 时间戳的行,采用考虑到两边的年份界限吗?

场景:

  • 如果from_month11to_month2,有没有办法让我得到from1383264000to1391212800 是否匹配?

但与此同时:

  • from_month 设为 3to_month 8,有没有办法获得 from1362096000to1375315200 匹配吗?

澄清:

  • 我需要第二个表中的记录,其中两个时间戳的月份均落在第一个表中规定的范围内。
  • 此外,我可以从时间戳中获取月份,因此 MySQL 不需要解析它,但解决方案可能不受影响。

最佳答案

抱歉,但我不确定您想如何与年份进行比较

但如果只有月份,你可以使用FROM_UNIXTIME从 unixtime 获取日期,以及 MONTH从日期获取月份

例如

SELECT FROM_UNIXTIME(1391212800)
> February, 01 2014 00:00:00+0000

SELECT MONTH(FROM_UNIXTIME(1391212800))
> 2

有了 unix 时间的月份,我相信您可以完成剩下的工作或帮助解释您想要的更多细节。

希望这有帮助

关于mysql - 如何将数据库中的月份范围与两个日期相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18856009/

相关文章:

php: datetime() 2 个日期时间与 2 个变量之间的差异

用于日期格式化的 JavaScript 实用程序

MySQL连接获取最新的有效行

c# - MySQL:连接不同计算机上的多个数据库

mysql - SQL 选择语句

mysql - 将字符串视为 MySQL 语句?

php - 使用多个 php 文件中的同一个临时表

php - 插入多个表不会插入所有记录

php - 拉维尔 4.2 : How to use whereIn() and with() to get a list of items in a one-to-many relationship?

sql - 如果发生错误,此事务是否会回滚