Postgres to_timestamp() 无法转换 unix epoch 字符串

2020-10-04 18:09:04 +08:00
 nuistzhou

表结构如下:

create table item
(
	"ID" varchar not null,
	"unixTime" varchar not null,
);

现在

SELECT TO_TIMESTAMP("unixTime");

就总是提示
ERROR: function to_timestamp(character varying) does not exist Hint: No function matches the given name and argument types. You might need to add explicit type casts.

但随手试了几个值都没啥问题,比如:
select to_timestamp('1358121600');
select to_timestamp('969408000');

初步怀疑表里有不同 format 的 timestamp 的值,然后 to_timestamp()不能根据不同的 format 自动智能转换?
有没有大佬可以启发下,看这样的情况怎么解决,急急急~谢谢谢谢

2326 次点击
所在节点    PostgreSQL
12 条回复
hooopo
2020-10-04 18:12:51 +08:00
SELECT TO_TIMESTAMP(unixTime);
nuistzhou
2020-10-04 18:19:31 +08:00
@hooopo 这个不是问题啦,postgres 里字段名有大写的话要加双引号的~
hooopo
2020-10-04 18:25:31 +08:00
很简单啊 先用 limit 1 测试下是不是数据问题 数据问题就修数据
nuistzhou
2020-10-04 18:29:54 +08:00
@hooopo Limit 1 也报错,而且 80M 条数据,没法测呀,我倒是想有个函数可以把这些 invalid 的数据排除出去。。。
hooopo
2020-10-04 18:31:49 +08:00
一个正则就行啊
MoYi123
2020-10-04 18:32:17 +08:00
select TO_TIMESTAMP("unixTime"::int) from item;
nuistzhou
2020-10-04 18:55:12 +08:00
@MoYi123 完美!!感谢感谢老哥
sagaxu
2020-10-04 19:24:07 +08:00
不能查一下手册看看这个函数的定义?
sfqtsh
2020-10-04 19:40:10 +08:00
\df to_timestamp

你看有 character varying 参数的吗?

显然没有!
nuistzhou
2020-10-04 19:51:29 +08:00
@sfqtsh 有支持 string 啊
sfqtsh
2020-10-04 20:13:26 +08:00
@nuistzhou 那是 format function 一种,且有两个参数。

to_timestamp ( text, text ) → timestamp with time zone

Converts string to time stamp according to the given format. (See also to_timestamp(double precision) in Table 9.32.)

to_timestamp('05 Dec 2000', 'DD Mon YYYY') → 2000-12-05 00:00:00-05
nuistzhou
2020-10-04 20:29:27 +08:00
@sfqtsh 哦,你说的对。
我需要的其实是这个:
```
to_timestamp ( double precision ) → timestamp with time zone

Convert Unix epoch (seconds since 1970-01-01 00:00:00+00) to timestamp with time zone

to_timestamp(1284352323) → 2010-09-13 04:32:03+00
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/712510

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX