错误:函数date_trunc(没有时区的时间戳)不存在

roy*_*asa 8 sql postgresql datetime

嘿家伙,我有这个问题.我有一个sql查询我试图对我的postgres数据库.这些查询在oracle中工作正常,但我正在将其转换为postgres查询,但它抱怨.这是查询:

select  to_char(calldate,'Day') as Day, date_trunc(calldate) as transdate,
Onnet' as destination,ceil(sum(callduration::integer/60) )as    total_minutes,round(sum(alltaxcost::integer) ,2)as revenue
from cdr_data 
where callclass ='008' and callsubclass='001'
and callduration::integer >0
and  regexp_like(identifiant,'^73')
and bundleunits = 'Money'
and inserviceresultindicator in (0,5)
and regexp_like(regexp_replace(callednumber,'^256','') ,'^73')
group by  to_char(calldate,'Day') ,trunc(calldate),'Onnet' order by 2
Run Code Online (Sandbox Code Playgroud)

我得到的错误是这样的:

Err] ERROR:  function date_trunc(timestamp without time zone) does not exist
LINE 4: select  to_char(calldate,'Day') as Day, date_trunc(calldate)...
Run Code Online (Sandbox Code Playgroud)

我做错了什么或者这个错误的解决方案是什么.

Igo*_*nko 12

尝试:

... date_trunc('day',calldate) ...
Run Code Online (Sandbox Code Playgroud)

对于PostgreSQL date_trunc()函数,您必须始终将precision指定为第一个参数.

细节在这里.