我继承了一个带有古怪架构的数据库。没有细节,我有一个奇怪的用例。
该表包含一个completed_at字段,它是一个没有时区的时间戳。我想要做的是按时间戳的顺序排序结果,时间戳是> X
踢球者是X是数字(或十进制)值。尝试将时间戳转换为int失败甚至是字符串。
如果您只是尝试completed_at>你得到0
答案 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