Ich habe eine Tabelle in der MySQL-Datenbank, die mit eingerichtet ist DATETIME
. Ich muss SELECT
in dieser Tabelle nur bis DATUM und ohne die Zeit.
Wie kann ich SELECT
in dieser Tabelle nur das Datum und die Zeit umgehen, selbst wenn diese bestimmte Spalte auf gesetzt ist DATETIME
?
Beispiel
Jetzt ist es:
2012-01-23 09:24:41
Ich muss SELECT
nur dafür etwas tun :2012-01-23
Antworten:
SELECT DATE(ColumnName) FROM tablename;
Mehr zur MySQL DATE () Funktion .
quelle
Sie können date_format verwenden
für die Zeitzone
quelle
Sie können
select DATE(time) from appointment_details
nur für Datum verwendenoder
Sie können
select TIME(time) from appointment_details
nur für die Zeit verwendenquelle
Versuchen Sie
für heute zu verwenden:
für ausgewähltes Datum:
quelle
In MYSQL haben wir die Funktion DATE_FORMAT (Datum, Format) . In Ihrem Fall wird Ihre select-Anweisung folgendermaßen aussehen: -
SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name
Weitere Informationen zu den MySQL-Funktionen DATE und TIME finden Sie hier.
quelle
Einfach können Sie tun
quelle
Ich habe versucht, a auszuführen
SELECT DATE(ColumnName)
, dies funktioniert jedoch nicht fürTIMESTAMP
Spalten †, da diese in UTC gespeichert sind und das UTC-Datum verwendet wird, anstatt in das lokale Datum zu konvertieren. Ich musste Zeilen auswählen, die sich an einem bestimmten Datum in meiner Zeitzone befanden. Um meine Antwort auf diese andere Frage mit der Antwort von Balaswamy Vaddeman auf diese Frage zu kombinieren, habe ich Folgendes getan:Wenn Sie Daten als speichern
DATETIME
Mach einfach
SELECT DATE(ColumnName)
Wenn Sie Daten als speichern
TIMESTAMP
Laden Sie die Zeitzonendaten in MySQL, falls Sie dies noch nicht getan haben. Für Windows-Server siehe den vorherigen Link. Für Linux-, FreeBSD-, Solaris- und OS X-Server würden Sie Folgendes tun:
Formatieren Sie dann Ihre Abfrage wie folgt:
Sie können dies auch in den
WHERE
Teil der Abfrage wie folgt einfügen (beachten Sie jedoch, dass Indizes für diese Spalte nicht funktionieren):(Ersetzen
America/New_York
Sie offensichtlich Ihre lokale Zeitzone.)† Die einzige Ausnahme ist, wenn Ihre lokale Zeitzone GMT ist und Sie keine Sommerzeit machen, da Ihre Ortszeit mit UTC übereinstimmt.
quelle
Versuchen
SELECT * FROM Profiles WHERE date(DateReg)=$date
wo $ date in JJJJ-MM-TT istAlternative
SELECT * FROM Profiles WHERE left(DateReg,10)=$date
Prost
quelle
Sie können dies versuchen:
Wenn Sie Folgendes überprüfen:
Sie können sehen, dass es lange dauert.
quelle
quelle
Bitte versuchen Sie diese Antwort.
quelle
Verwenden
DATE_FORMAT
Beispiel:
quelle
Dieser kann verwendet werden, um das Datum im Format 'JJJJ-MM-TT' abzurufen.
quelle
Wenn sich die Zeitspalte im Zeitstempel befindet, erhalten Sie mit dieser Abfrage einen Datumswert aus diesem Zeitstempel
quelle
Im Interesse einer funktionierenden Lösung für diese Frage:
Natürlich können Sie die Funktion NOW () in ein beliebiges Datum oder eine beliebige Variable ändern.
quelle