首頁 >資料庫 >mysql教程 >如何在 MySQL 中從單獨的日、月和年字段中建構日期?

如何在 MySQL 中從單獨的日、月和年字段中建構日期?

Linda Hamilton
Linda Hamilton原創
2024-12-25 07:46:54299瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn