Vergleichen Sie MySQL-Zeitstempeldaten nur mit dem Datumsparameter

Mehvish Ashiq 20 Juni 2023
  1. DATE() vs. CAST() vs. CONVERT() in MySQL
  2. Vergleichen Sie MySQL-Zeitstempeldaten nur mit dem Datumsparameter
  3. Verwenden Sie DATE(), um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen
  4. Verwenden Sie CAST(), um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen
  5. Verwenden Sie CONVERT(), um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen
  6. Verwenden Sie BETWEEN, um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen
Vergleichen Sie MySQL-Zeitstempeldaten nur mit dem Datumsparameter

Heute werden wir die Funktionen DATE(), CAST() und CONVERT() verwenden, um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen.

DATE() vs. CAST() vs. CONVERT() in MySQL

Im Folgenden finden Sie eine kurze Einführung zu jeder Funktion. Weitere Beispiele finden Sie auch, indem Sie hier klicken.

die DATE()-Methode in MySQL

Die Methode DATE() extrahiert den Datumsteil aus dem Zeitstempel- oder DateTime-Ausdruck. Es wird nur ein Parameter benötigt, der vom Typ DATE, TIMESTAMP oder DATETIME sein muss.

Es gibt NULL zurück, wenn das übergebene Argument zu einem anderen als den erwähnten Typen gehört. Diese Funktion ist verfügbar, wenn Sie MySQL Version 4.0 oder höher verwenden.

die CONVERT()-Methode in MySQL

Die Methode CONVERT() wandelt den jeweiligen Wert in den angegebenen Datentyp um. Beispielsweise können wir den Wert des Typs TIMESTAMP in den Typ DATE umwandeln.

Es braucht zwei Parameter, und beide sind erforderlich. Der erste Parameter ist der Wert, der konvertiert werden soll, und der andere ist der Datentyp, auf den der angegebene Wert konvertiert werden würde.

Es ist in MySQL-Version 4.0 und höher verfügbar.

die CAST()-Methode in MySQL

Die Methode CAST() ähnelt der oben erläuterten Methode CONVERT(). Wir verwenden es, um den Wert eines Datentyps in einen anderen umzuwandeln.

Zum Beispiel, wenn wir den Wert von DateTime in den Typ DATE konvertieren. Wie die Methode CONVERT() nimmt sie auch zwei Werte entgegen: den zu konvertierenden Wert und den Datentyp, in den Sie konvertieren möchten.

Wir können diese Funktion verwenden, wenn wir MySQL Version 4.0 oder höher haben.

Vergleichen Sie MySQL-Zeitstempeldaten nur mit dem Datumsparameter

Um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen, erstellen wir eine Tabelle namens date_comparison mit zwei Attributen, ID und COL_DATETIME. Hier ist ID vom Typ int und COL_DATETIME ist vom Typ TIMESTAMP.

Sie können diese Tabelle auch mit den folgenden Abfragen erstellen, um dieses Tutorial mit uns zu verfolgen.

Beispiel:

# Create a table
CREATE TABLE date_comparison(
    ID INT NOT NULL AUTO_INCREMENT,
    COL_DATETIME TIMESTAMP NOT NULL,
    PRIMARY KEY (ID));

# Insert data
INSERT INTO date_comparison(col_datetime)
VALUES
('2001-11-15 09:50:00'),
('2006-08-09 04:30:00'),
('2001-11-15 23:30:00'),
('2005-06-03 06:22:11'),
('2004-01-01 21:42:17');

# Show all data
SELECT * FROM date_comparison;

Ausgang:

+----+---------------------+
| ID | col_datetime        |
+----+---------------------+
|  1 | 2001-11-15 09:50:00 |
|  2 | 2006-08-09 04:30:00 |
|  3 | 2001-11-15 23:30:00 |
|  4 | 2005-06-03 06:22:11 |
|  5 | 2004-01-01 21:42:17 |
+----+---------------------+
5 rows in set (0.00 sec)

Jetzt wollen wir die Aufzeichnungen eines bestimmten Datums abrufen; zB nur für das Datum 2005-06-03. Wir müssen den Datumsparameter mit allen Werten der Spalte col_datetime des Typs TIMESTAMP vergleichen.

Verwenden Sie DATE(), um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen

Daher können wir das Zeitstempeldatum nur wie folgt mit dem Datumsparameter vergleichen.

Beispiel:

SELECT * FROM date_comparison WHERE DATE(col_datetime) = '2005-06-03';

Ausgang:

+----+---------------------+
| ID | col_datetime        |
+----+---------------------+
|  4 | 2005-06-03 06:22:11 |
+----+---------------------+
1 row in set (0.00 sec)

Wenn wir uns nur auf das Datum konzentrieren, können wir die col_datetime mit der Funktion DATE() in ein Datum umwandeln.

Beispiel:

SELECT ID, DATE(col_datetime) FROM date_comparison
WHERE DATE(col_datetime) = '2005-06-03';

Ausgang:

+----+--------------------+
| ID | DATE(col_datetime) |
+----+--------------------+
|  4 | 2005-06-03         |
+----+--------------------+
1 row in set (0.00 sec)

Verwenden Sie CAST(), um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen

Wir können auch die Funktion CAST() verwenden, um die Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen.

Beispiel:

SELECT ID, CAST(col_datetime AS DATE) FROM date_comparison
WHERE CAST(col_datetime AS DATE) = '2005-06-03';

Ausgang:

+----+----------------------------+
| ID | CAST(col_datetime AS DATE) |
+----+----------------------------+
|  4 | 2005-06-03                 |
+----+----------------------------+
1 row in set (0.00 sec)

Verwenden Sie CONVERT(), um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen

Die Funktion CONVERT() kann den Zeitstempel auch nur mit dem Datum vergleichen.

Beispiel:

SELECT ID, CONVERT(col_datetime, DATE) FROM date_comparison
WHERE CONVERT(col_datetime, DATE) = '2005-06-03';

Ausgang:

+----+-----------------------------+
| ID | CONVERT(col_datetime, DATE) |
+----+-----------------------------+
|  4 | 2005-06-03                  |
+----+-----------------------------+
1 row in set (0.00 sec)

Verwenden Sie BETWEEN, um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen

Die folgende Lösung ist die schnellste, wenn Sie einen Index für die Spalte col_datetime (mit dem Typ TIMESTAMP) haben, da sie den Index für die Spalte col_datetime verwenden könnte.

Beispiel:

SELECT * FROM date_comparison
WHERE col_datetime
BETWEEN '2005-06-03 00:00:00' AND '2005-06-03 23:59:59';

Ausgang:

+----+---------------------+
| ID | col_datetime        |
+----+---------------------+
|  4 | 2005-06-03 06:22:11 |
+----+---------------------+
1 row in set (0.00 sec)
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Timestamp