在 postgres 中日期显示为 DATE HH:MI:SS
Date display as DATE HH:MI:SS in postgres
我在数据库中有一个存储 UTC 时间的 date_timestamp 列。
示例:
2022-01-09 15:38:47.487-05
2022-01-08 21:28:30.989492-05
但在报告中,我只想显示 DATE 和 HH:MI:SS。
我想将其显示为日期而不是字符串。
例如:
2022-01-09 15:38:47
2022-01-08 21:28:30
进行字符转换,例如
select to_char(timestampcreated,'YYYY-MM-DD HH:MI:SS') cc
以我想要的方式显示数据,但它是字符而不是日期。
“字符”数据的任何数据类型转换都被打乱了。我要么可以得到日期,要么可以得到时间,但不能同时得到两者。
我怎样才能做到这一点?
如果你真的想要一个 date
:
select '2022-01-09 15:38:47.487-05'::timestamptz::date;
2022-01-09
select pg_typeof('2022-01-09 15:38:47.487-05'::timestamptz::date);
date
虽然你显示的期望结果是一个时间戳,所以:
select date_trunc('second', '2022-01-09 15:38:47.487-05'::timestamp);
2022-01-09 15:38:47
select pg_typeof(date_trunc('second', '2022-01-09 15:38:47.487-05'::timestamp));
timestamp without time zone
尽管@a_horse_with_no_name 说我不确定为什么报告输出很重要,无论是字符还是 date/time 类型。
有关 date_trunc
的更多信息,请参阅 date_trunc
我在数据库中有一个存储 UTC 时间的 date_timestamp 列。 示例:
2022-01-09 15:38:47.487-05
2022-01-08 21:28:30.989492-05
但在报告中,我只想显示 DATE 和 HH:MI:SS。 我想将其显示为日期而不是字符串。
例如:
2022-01-09 15:38:47
2022-01-08 21:28:30
进行字符转换,例如
select to_char(timestampcreated,'YYYY-MM-DD HH:MI:SS') cc
以我想要的方式显示数据,但它是字符而不是日期。
“字符”数据的任何数据类型转换都被打乱了。我要么可以得到日期,要么可以得到时间,但不能同时得到两者。
我怎样才能做到这一点?
如果你真的想要一个 date
:
select '2022-01-09 15:38:47.487-05'::timestamptz::date;
2022-01-09
select pg_typeof('2022-01-09 15:38:47.487-05'::timestamptz::date);
date
虽然你显示的期望结果是一个时间戳,所以:
select date_trunc('second', '2022-01-09 15:38:47.487-05'::timestamp);
2022-01-09 15:38:47
select pg_typeof(date_trunc('second', '2022-01-09 15:38:47.487-05'::timestamp));
timestamp without time zone
尽管@a_horse_with_no_name 说我不确定为什么报告输出很重要,无论是字符还是 date/time 类型。
有关 date_trunc
的更多信息,请参阅 date_trunc