Re: ERROR: operator does not exist: timestamp without time zone + integer

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Thomas Kellerer <spam_eater(at)gmx(dot)net>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: ERROR: operator does not exist: timestamp without time zone + integer
Date: 2019-04-30 13:11:00
Message-ID: 795d66f1-46cf-7171-5442-1ee1618f3e8f@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 4/30/19 2:24 AM, Thomas Kellerer wrote:
> Daulat Ram schrieb am 30.04.2019 um 05:46:
>> We are getting an ERROR: “operator does not exist: timestamp without
>> time zone + integer “ while creating table in postgres. The same
>> script is working fine in Oracle, I know there are some changes in
>> postgres but I am unable to identify . Please suggest how we can
>> create it successfully in postgres.
>>
>>
>> kbdb=# CREATE TABLE motif_site (
>> kbdb(#         topic_match_conf_threshold bigint DEFAULT 3,
>> kbdb(#         retention_period bigint DEFAULT 3,
>> kbdb(#         site_mode_date timestamp NOT NULL DEFAULT date_trunc('day', LOCALTIMESTAMP)+7,
>> kbdb(#         reload_submission_date timestamp,
>> kbdb(#         socket_time_out bigint DEFAULT 2500,
>> kbdb(#         reload_date timestamp,
>> kbdb(#         marked_content_tag varchar(1024) DEFAULT 'pagecontent konabody intellitxt echotopic contentpaneopen postbody realtext newscontent content contentbody posttext##post_message_.*',
>> kbdb(#         crawl_batch_size_lower_limit numeric(38) NOT NULL DEFAULT 20,
>> kbdb(#         site_name varchar(512) NOT NULL,
>> kbdb(#         crawl_batch_size_upper_limit numeric(38) NOT NULL DEFAULT 40,
>> kbdb(#         mtg numeric(38) DEFAULT 2000,
>> kbdb(#         enabled numeric(38) NOT NULL DEFAULT 0,
>> kbdb(#         root_url varchar(1024),
>> kbdb(#         blocked_content_tag varchar(1024) DEFAULT 'nointellitxt noechotopic',
>> kbdb(#         match_params varchar(1024),
>> kbdb(#         tf_data_source varchar(256) DEFAULT 'Web',
>> kbdb(#         site_id numeric(38) NOT NULL
>> kbdb(# ) ;
>> ERROR:  operator does not exist: timestamp without time zone + integer
>> HINT:  No operator matches the given name and argument types. You might need to add explicit type casts.
>
> You can only add integers to DATEs, not to timestamps.
>
> To add a number of days to a timestamp, you need to use an interval:
>
> date_trunc('day', LOCALTIMESTAMP) + interval '7 day'

Or cast to a date:

test=> select date_trunc('day', localtimestamp)::date + 7;

?column?

------------

2019-05-07

(1 row)

>
> Thomas
>
>
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2019-04-30 14:16:17 Re: Amazon Linux Support?
Previous Message Thomas Kellerer 2019-04-30 09:24:55 Re: ERROR: operator does not exist: timestamp without time zone + integer