Wählen Sie zwischen Datum-Reihe und bestimmten Zeitspanne
Gibt es eine Möglichkeit, Datensätze Auswählen zwischen Daten und bestimmten Zeitraum. Zum Beispiel werden alle Datensätze aus 2013-11-01 zu 2013-11-30 Stunden zwischen 05:00 Uhr bis 15:00 Uhr. Hier was ich gemacht habe bis jetzt.
select count(*) as total from tradingaccounts accounts
inner join tradingaccounts_audit audit on audit.parent_id = accounts.id
where date(audit.date_created) between date('2013-11-01 00:00:00') AND date('2013-11-01 23:59:59')
Aber wie soll ich denn um die bestimmte Zeit reichen?
InformationsquelleAutor user1292656 | 2013-12-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
HOUR
Funktion zum hinzufügen einer zusätzlichen Bedingung auf die Stunden:sicher - Sie können mit einem
TIME
Funktion. E. g.,TIME(audit.date_created) BETWEEN '05:00:00' AND '15:00:00'
.InformationsquelleAutor Mureinik
Ersetzen Sie Ihre DATUM Funktion, überspringt man den Teil der Zeit. Verwenden TIMESTAMP statt.
InformationsquelleAutor Alex Pliutau
fügen Sie die folgende Zeile in der Abfrage und setzen Ihre Stunde ZWISCHEN
und Zeit(audit.date_created) zwischen "00:00:01" UND "01:00:00'
InformationsquelleAutor kashan
Als andere antwortete:
HOUR()
konnte dir helfen.Aber STUNDE() oder DATE() verwenden können
INDEX
. Um Abfragen schneller, ich schlage vor, dass hinzufügentime_created TIME
Spalte und speichern Sie nur den Teil der ZEIT. danachADD INDEX(date_created, time_created)
. schließlich mit der folgenden Abfrage können Sie abrufen von Zeilen mit hoher Geschwindigkeit.InformationsquelleAutor Jason Heo
Wenn Sie
date(audit.date_created)
der index aufdate_created
Feld konnte nicht wirksam werden.Einfach verwenden
where audit.date_created >= 'xx-xx-xx' and audit.date_created < 'xx-xx-xx'
InformationsquelleAutor deepDarkFantasy