簡體   English   中英

修復錯誤:“運算符不存在:沒有時區的時間戳>整數”錯誤

[英]Fix ERROR: "operator does not exist: timestamp without time zone > integer" error

我試圖將查詢從谷歌大查詢遷移到 postgresql,我得到了這個錯誤

錯誤:運算符不存在:沒有時區的時間戳 > 整數

select *, DATE(_modification_time) as modification_date, 
       CASE WHEN t_start>0 THEN DATE(t_start) END as start_date, 
       CASE WHEN _creation_time>0 THEN DATE(_creation_time) END as creation_date, 
       CASE WHEN t_finish>0 THEN DATE(t_finish) END as finish_date, 
       'WMT' as source 
from public.set_list

您正在嘗試將timestamp值與整數 (0) 進行比較。 這在 Postgres 中是不允許的。 相反,您可以使用 extract 函數將時間戳轉換為整數,並獲取自 Unix 紀元 (1970-01-01 00:00:00) 開始以來的秒數,這是一個整數,然后將其與整數 0,像這樣:

select *, DATE(_modification_time) as modification_date, 
       CASE WHEN extract(EPOCH FROM t_start) > 0
            THEN DATE(t_start) END as start_date, 
       CASE WHEN extract(EPOCH FROM _creation_time) > 0
            THEN DATE(_creation_time) END as creation_date, 
       CASE WHEN extract(EPOCH FROM t_finish) > 0
            THEN DATE(t_finish) END as finish_date, 
       'WMT' as source 
from public.set_list

但是,我懷疑這是否是您想要的,因為這意味着您正在比較這些值中的任何一個t_start_creation_timet_finish是否晚於 1970-01-01 00:00:00。 也許你可以在這里分享更多關於你想要完成的事情。 這將幫助您獲得更集中的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM