So wählen Sie Datensätze zwischen zwei timestamps in der oracle
Ich habe eine Tabelle, wo die Spalte recorded
ist definiert als eine timestamp
wie folgt:
TIMESTAMP(6) RECORDED
Möchte ich, um alle Datensätze auszuwählen, die wurden "aufgenommen" zwischen 2 timestamps . Dafür schrieb ich die folgende Abfrage:
SELECT * FROM myTable WHERE
recorded BETWEEN 1414794711050 AND 1415399511053;
Wenn dies zu tun, erhalte ich eine Fehlermeldung
ORA-00932: Inkonsistente Datentypen: TIMESTAMP erwartet, die NUMMER bekam
00932. 00000 - "inkonsistente Datentypen: erwartete %s, bekam %s"
Ich habe auch versucht mit:
SELECT * FROM myTable WHERE
recorded BETWEEN to_timestamp(1414794711) AND to_timestamp(1415399511);
Wie ist der Weg, diese Abfrage funktioniert?
- Ist "1414794711050" ein unix-timestamp? (Sekunden vom 1. Januar 1970)
- Es ist der Betrag von Millisekunden ab dem 1. Januar 1970, aber es wäre kein problem, nehmen Sie die Anzahl der Sekunden, d.h. Division durch 1000 und abschneiden.
InformationsquelleAutor Luixv | 2014-11-18
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
1414794711050/24/60/60/1000
konvertiert Millisekunden, um eine Anzahl von Tagen (24 Stunden am Tag, 60 munites in einer Stunde, 60 Sekunden pro minute)to_date('19700101', 'YYYYMMDD')
+ [N Tage] = new date (N Tage später)