2017-03-23 8 views
-3

ich bin neu in DB2 können Sie bitte helfen, wie Abfrage in DB2 für zwischen Zeitstempel mit AM-und PM-Format ausführen.db2 zwischen Zeitstempel Abfrage

Unten ist die Tabelle

ID NAME  TIMESTAMP 
== ====  ========= 
6 Xavier 02/02/2016 2:24:32 AM 
7 Paul  02/02/2016 2:46:53 PM 
8 Adam  02/02/2016 4:05:39 PM 
9 Newton 12/02/2016 5:29:46 PM 
10 Jack  14/02/2016 9:29:46 PM 

ich die obige Tabelle verwenden möchten Namen auf 2016.02.02 zwischen 01.00 auszuwählen 04.00

Können Sie bitte erreichen helfen.

+0

Was ist der Datentyp der Timestamp Spalte? – GurV

+0

ist Timestamp Spalte eine Zeichenfolge? – Hogan

Antwort

-1

den Datentyp für Zeitstempel Unter der Annahme date ist, verwenden

select * From your_table where timestamp between 
to_date('02/02/2016 01:00:00','DD/MM/YYYY HH24:MI:SS') 
and 
to_date('02/02/2016 16:00:00','DD/MM/YYYY HH24:MI:SS') 

Sie könnten 'AM'/'PM' aufgrund Ihrer Client-Einstellungen sehen werden.

+1

Wenn Timestamp-Spalte eine Zeichenfolge ist, wird dies nicht funktionieren. – Hogan

+0

@Hogan - Hast du nicht die erste Zeile in der Antwort gelesen ?? 'Nehmen wir an, der Datentyp für den Zeitstempel ist das Datum' .Warum geben Sie die gleichen Informationen erneut? – Utsav

+0

Weil alles über meine Erfahrung für 7 Jahre auf Stapelüberlauf mich dazu gebracht hat zu glauben, dass der Fragesteller Timestamp-Informationen als eine Zeichenfolge speicherte. Obwohl Ihre Antwort richtig war, glaube ich immer noch, dass dies der Fall ist. – Hogan

1

Wenn Sie Zeitstempel vergleichen möchten, müssen Sie den Zeitstempel ändern. Im Moment sind Ihre Daten Strings - ich glaube nicht, dass Strings funktionieren, wenn Sie sie nicht konvertieren. Zum Beispiel würde 09 pm vor 11 Uhr kommen

select * 
from your_table 
where timestamp(timestamp) between timestamp('02/02/2016 01:00:00') 
           and timestamp('02/02/2016 16:00:00')