Heim >Datenbank >MySQL-Tutorial >Wie kann ich in MySQL ein DATE-Objekt aus separaten Tages-, Monats- und Jahresfeldern erstellen?

Wie kann ich in MySQL ein DATE-Objekt aus separaten Tages-, Monats- und Jahresfeldern erstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-23 04:57:37457Durchsuche

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

Erstellen Sie ein Datumsobjekt aus Tages-, Monats- und Jahresfeldern in MySQL

In einem Datenbankschema mit einer „Datums“-Tabelle, die separate enthält Wenn Sie Felder für „Tag“, „Monat“ und „Jahr“ verwenden, muss für Vergleiche ein Datumsobjekt erstellt werden. In diesem Artikel wird eine Lösung zum Erstellen eines Datumsobjekts aus diesen ganzzahligen Werten beschrieben.

Mit den Funktionen MAKEDATE() und DATE_ADD() kann eine DATETIME aus den Komponenten Jahr, Monat und Tag erstellt werden. MAKEDATE() generiert eine DATETIME, die den ersten Tag des angegebenen Jahres darstellt. Anschließend kann DATE_ADD() angewendet werden, um die Monats- und Tageswerte hinzuzufügen.

Zum Beispiel:

SELECT MAKEDATE(2013, 1);
+-------------------+
| MAKEDATE(2013, 1) |
+-------------------+
| 2013-01-01        |
+-------------------+

So integrieren Sie die Monats- und Tageswerte:

SELECT DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH);
+---------------------------------------------------+
| DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH) |
+---------------------------------------------------+
| 2013-03-01                                        |
+---------------------------------------------------+

Die Kombination mehrerer DATE_ADD()-Aufrufe ermöglicht eine präzise Datumskonstruktion:

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                                                                       |
+----------------------------------------------------------------------------------+

Um damit eine Datumsbereichsabfrage auszuführen Technik:

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';

Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL ein DATE-Objekt aus separaten Tages-, Monats- und Jahresfeldern erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn