从 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中文网其他相关文章!