Pri*_*iya 4 sql postgresql datepart
如何从 Postgres 中的日期中提取毫秒、工作日、微秒、纳秒。我也尝试过提取方法,但找不到完全等效的方法。
我不确定您在寻找什么等效项,但是:
timestampintervalmilliseconds包含secondsµseconds包含milliseconds(因此也是seconds如此)。如果您正在寻找逻辑上独立的值,则需要进行一些数学运算,例如:
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
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在查看时间戳在其实际一周内的距离,您也可以使用timestamp(and interval) 算术:
select ts - date_trunc('week', ts) time_elapsed_since_monday
Run Code Online (Sandbox Code Playgroud)
(尽管计算从周日开始的周数相当困难:date_trunc仅适用于 ISO 周)。
http://rextester.com/SOOO48159