Ich bin mir nicht sicher, welches Äquivalent Sie suchen, aber:
- es gibt keine Präzision im Nanosekundenbereich
in PostgreSQL:Der erlaubte Bereich von p (Präzision) ist von 0 bis 6 für den
timestamp
undinterval
Typen. - Einige Datumsteile enthalten andere:z. B.
milliseconds
enthältseconds
µseconds
enthältmilliseconds
(und damitseconds
auch).
Wenn Sie nach logisch getrennten Werten suchen, müssen Sie etwas rechnen, z. B.:
select extract(dow from ts) dow, -- day-of-week (where weeks start on sunday, which is 0)
extract(isodow from ts) isodow, -- ISO day-of-week (where weeks start on monday, which is 1)
floor(extract(seconds from ts))::int only_seconds,
floor(extract(milliseconds from ts))::int - 1000 * floor(extract(seconds from ts))::int only_milliseconds,
floor(extract(microseconds from ts))::int - 1000 * floor(extract(milliseconds from ts))::int only_microseconds,
extract(microseconds from ts) all_microseconds
Oder wenn Sie sehen möchten, wie weit ein Zeitstempel innerhalb seiner tatsächlichen Woche liegt, können Sie timestamp
verwenden (und interval
) Arithmetik auch:
select ts - date_trunc('week', ts) time_elapsed_since_monday
(Obwohl es ziemlich schwierig ist, dies für Wochen zu berechnen, die am Sonntag beginnen:date_trunc
funktioniert nur mit ISO-Wochen).
http://rextester.com/SOOO48159