Vergleichen Sie MySQL-Zeitstempeldaten nur mit dem Datumsparameter
-
DATE()
vs.CAST()
vs.CONVERT()
in MySQL - Vergleichen Sie MySQL-Zeitstempeldaten nur mit dem Datumsparameter
-
Verwenden Sie
DATE()
, um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen -
Verwenden Sie
CAST()
, um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen -
Verwenden Sie
CONVERT()
, um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen -
Verwenden Sie
BETWEEN
, um MySQL-Zeitstempeldaten nur mit dem Datumsparameter zu vergleichen
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)