将没有时区的时间戳转换为整数Postgres

时间:2015-01-26 17:44:52

标签: sql postgresql

我继承了一个带有古怪架构的数据库。没有细节,我有一个奇怪的用例。

该表包含一个completed_at字段,它是一个没有时区的时间戳。我想要做的是按时间戳的顺序排序结果,时间戳是> X

踢球者是X是数字(或十进制)值。尝试将时间戳转换为int失败甚至是字符串。

如果您只是尝试completed_at>你得到0

4 个答案:

答案 0 :(得分:4)

我找到的唯一答案就是这条消息: https://www.postgresql.org/message-id/3EE8B4ED.1060200%40pgsqldb.com

基本上,我猜,答案是: select cast(extract(epoch from current_timestamp) as integer);

答案 1 :(得分:1)

我正在使用以下代码将当前时间转换为Bigint。

SELECT cast(to_char((current_timestamp)::TIMESTAMP,'yyyymmddhhmiss') as BigInt)

答案 2 :(得分:0)

我有一个类似的问题:我想将年份提取为整数,因此使用上面的代码,我将CAST(EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS INTEGER)写入了PostgreSQL数据库,然后检查了PGADMIN 4中的约束,并提出了以下替代方案,我发现这很有趣:

date_part('year'::text, CURRENT_TIMESTAMP)::integer

答案 3 :(得分:-7)

如果是SQL,我会使用以下代码。这个对我有用。如果方法错误,请将ASC更改为DESC。你不应该转换任何东西。

ORDER BY `timestamp_column` ASC