MYSQL - Abrufen von Zeitstempeln zwischen Daten

7

Alle,

Ich habe eine MYSQL-Tabelle mit einer Spalte namens timestamp. Es ist von DATETIME Datentyp und hat Werte wie "01.10.2009 15:25:08", "01.10.2009 15:30:05", "04.10.2009 3:40:01" PM ', etc ..

Ich möchte eine SQL-Abfrage schreiben, um alle Werte im Zeitstempelfeld zu wählen, die zwischen zwei Daten vorkommen. Etwas wie dieses:

%Vor%

Die userInput-Daten haben keine Zeitabschnitte. Können Sie bitte die korrekte MySQL Query Syntax dafür vorschlagen? Danke

    
Jake 11.01.2010, 21:24
quelle

4 Antworten

14
%Vor%

Dies wird jeden Datensatz mit einem Datum zwischen userStartDate und userEndDate auswählen, vorausgesetzt diese Felder haben den Typ DATE (ohne Zeitanteil).

Wenn die Start- und Enddaten als Strings kommen, verwenden Sie STR_TO_DATE , um von einem beliebigen Format zu konvertieren:

%Vor%     
Quassnoi 11.01.2010, 21:26
quelle
8
%Vor%
  

Für beste Ergebnisse bei Verwendung von BETWEEN mit Datums- oder Uhrzeitwerten sollten Sie CAST() verwenden, um die Werte explizit in den gewünschten Datentyp zu konvertieren. Beispiele: Wenn Sie ein DATETIME mit zwei DATE Werten vergleichen, konvertieren Sie die DATE Werte in DATETIME Werte. Wenn Sie eine String-Konstante wie '2001-1-1' in einem Vergleich mit einem DATE verwenden, müssen Sie die Zeichenfolge in ein DATE umwandeln.

     

- Ссылка

    
Sampson 11.01.2010 21:31
quelle
4

Die userInput-Daten haben keine Zeitstempel. Sie können Benutzereingaben in Zeitstempel umwandeln mit:

%Vor%

Ihre Anfrage kann werden:

%Vor%     
Yada 11.01.2010 21:31
quelle
2

Wenn Sie ein Ereignis zwischen zwei Zeitstempeln abfragen möchten, für einen Kalender oder etwas, bei dem Anfang und Ende als Zeitstempel gespeichert sind, können Sie dies verwenden

%Vor%     
Milk Man 30.06.2012 18:57
quelle

Tags und Links