带微秒的 Postgres 时间戳

Postgres timestamp with microseconds

我在 table 中有一列的数据类型设置为 timestamp without time zone

我需要微秒(6位)的时间部分,但有时如果最后一位为零,微秒部分会忽略它。

我可以用下面的查询得到 6 位数字 select to_char(now(), 'yyyy-mm-dd hh:mi:us'); 2020-07-16 12:05:598000

上面的输出是 text/char 格式,但我需要它是 timestamp without time zone 数据类型,所有 6 位数字都是微秒,即使最后一位或某些数字为零也是如此。列数据类型为 timestamp without time zone

在您尝试显示该值之前,有效位数不会起作用。在此示例中,46.392000 等同于 46.392,就像十进制数一样。

select '2020-07-16 11:35:46.392000-4'::timestamptz = '2020-07-16 11:35:46.392-4'::timestamptz;

 ?column? 
----------
 t

您需要在什么地方查看所有六位数字都去掉了零?这就是您需要应用格式的地方。