Nie jestem pewien, jakiego odpowiednika szukasz, ale:
- nie ma dokładności nanosekundowej
w PostgreSQL:Dozwolony zakres p (precyzja) jest od 0 do 6 dla
timestamp
iinterval
typy. - niektóre części daty zawierają inne:np.
milliseconds
zawieraseconds
µseconds
zawieramilliseconds
(i stądseconds
też).
Jeśli szukasz logicznie oddzielnych wartości, musisz wykonać trochę matematyki, np.:
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
Lub, jeśli szukasz, jak daleko znajduje się znacznik czasu w swoim rzeczywistym tygodniu, możesz użyć timestamp
(i interval
) także arytmetyka:
select ts - date_trunc('week', ts) time_elapsed_since_monday
(Chociaż raczej trudno jest to obliczyć dla tygodni rozpoczynających się w niedzielę:date_trunc
działa tylko z tygodniami ISO).
http://rextester.com/SOOO48159