首页 > 数据库 > mysql教程 > 如何在 MySQL 中从单独的日、月和年字段创建 DATE 对象?

如何在 MySQL 中从单独的日、月和年字段创建 DATE 对象?

Linda Hamilton
发布: 2024-12-23 04:57:37
原创
372 人浏览过

How Can I Create a DATE Object in MySQL from Separate Day, Month, and Year Fields?

从 MySQL 中的日、月和年字段创建日期对象

在包含单独的“日期”表的数据库模式中如果有“日”、“月”和“年”字段,则有必要创建一个日期对象进行比较。本文概述了从这些整数值构造日期对象的解决方案。

使用 MAKEDATE() 和 DATE_ADD() 函数,可以从年、月和日组件创建 DATETIME。 MAKEDATE() 生成表示指定年份的第一天的 DATETIME。随后,可以应用 DATE_ADD() 添加月份和日期值。

例如:

SELECT MAKEDATE(2013, 1);
+-------------------+
| MAKEDATE(2013, 1) |
+-------------------+
| 2013-01-01        |
+-------------------+
登录后复制

要合并月份和日期值:

SELECT DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH);
+---------------------------------------------------+
| DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH) |
+---------------------------------------------------+
| 2013-03-01                                        |
+---------------------------------------------------+
登录后复制

组合多个 DATE_ADD() 调用可以实现精确的日期构造:

SELECT DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY);
| DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY) |
+----------------------------------------------------------------------------------+
| 2013-03-11                                                                       |
+----------------------------------------------------------------------------------+
登录后复制

执行使用此技术的日期范围查询:

SELECT * FROM `date`
WHERE DATE_ADD(DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH), INTERVAL (day)-1 DAY)
BETWEEN '2013-01-01' AND '2014-01-01';
登录后复制

以上是如何在 MySQL 中从单独的日、月和年字段创建 DATE 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板