首页 > 数据库 > mysql教程 > 如何在 MySQL 中从单独的日、月和年字段构造日期?

如何在 MySQL 中从单独的日、月和年字段构造日期?

Linda Hamilton
发布: 2024-12-25 07:46:54
原创
292 人浏览过

How to Construct a Date in MySQL from Separate Day, Month, and Year Fields?

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

在数据库应用程序中,经常需要根据单独的日、月和年字段用于比较或其他处理。当数据库模式继承自之前选择以非标准方式存储日期组件的设计时,这一点变得尤为重要。

问题陈述(修订版)

此问题涉及从具有“日”、“月”和“年”各个字段的表(而不是合并的日期字段)在 SQL 中创建日期对象。目的是使用 BETWEEN 子句将这些日期与用户输入范围进行比较。

数据库架构

以下是为“日期”提供的架构表:

CREATE TABLE IF NOT EXISTS `date` (
  `deposition_id` varchar(11) NOT NULL default '',
  `day` int(2) default NULL,
  `month` int(2) default NULL,
  `year` int(4) default NULL,
  PRIMARY KEY  (`deposition_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
登录后复制

解决方案

要从这些单独的组件创建日期对象,可以使用以下 SQL 逻辑:

  1. 从年和月构造日期:使用 MAKEDATE() 函数,其中日为常量1 获取代表指定年份和月份的第一天的 DATETIME。
  2. 用月份和日期调整日期:应用 DATE_ADD() 函数将月份和日期值相应地添加到初始日期时间。

示例查询

选择“日期”表中构造日期在特定范围内的所有行:

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 中从单独的日、月和年字段构造日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

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