[英]ERROR: operator does not exist: timestamp without time zone > integer)
[英]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_time
和t_finish
是否晚於 1970-01-01 00:00:00。 也許你可以在這里分享更多關於你想要完成的事情。 這將幫助您獲得更集中的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.