Newbie timestamp question

Started by Robin 'Sparky' Kopetzkyabout 22 years ago5 messagesgeneral
Jump to latest
#1Robin 'Sparky' Kopetzky
sparkyk@blackmesa-isp.net

Good Morning!!

I'm repairing a series of scripts in PHP that use the 'datetime' of MySQL
and converting them to Postgres. Question is this: The datetime format used
in the script is 'YYYYMMDDHHMMSS' as a text string. Do I have to convert
this to the format shown in the Postgres manual: '1999-01-08 04:05:06' for
Postgres to accept the value or can I just pass an integer as 19990108040506
for the timestamp?

Thanks in advance.

Robin Kopetzky
Black Mesa Computers/Internet Services
Grants, NM

#2scott.marlowe
scott.marlowe@ihs.com
In reply to: Robin 'Sparky' Kopetzky (#1)
Re: Newbie timestamp question

On Wed, 17 Mar 2004, Robin 'Sparky' Kopetzky wrote:

Good Morning!!

I'm repairing a series of scripts in PHP that use the 'datetime' of MySQL
and converting them to Postgres. Question is this: The datetime format used
in the script is 'YYYYMMDDHHMMSS' as a text string. Do I have to convert
this to the format shown in the Postgres manual: '1999-01-08 04:05:06' for
Postgres to accept the value or can I just pass an integer as 19990108040506
for the timestamp?

You can just seperate the date part from the time part with a space and it
will work:

postgres=# create table test (dt timestamp);
CREATE TABLE
postgres=# insert into test values ('20020202121410');
ERROR: invalid input syntax for type timestamp: "20020202121410"
postgres=# insert into test values ('20020202 121410');
INSERT 20297173 1
postgres=# select * from test;
dt
---------------------
2002-02-02 12:14:10

#3Richard Huxton
dev@archonet.com
In reply to: Robin 'Sparky' Kopetzky (#1)
Re: Newbie timestamp question

On Wednesday 17 March 2004 18:52, Robin 'Sparky' Kopetzky wrote:

Good Morning!!

I'm repairing a series of scripts in PHP that use the 'datetime' of MySQL
and converting them to Postgres. Question is this: The datetime format used
in the script is 'YYYYMMDDHHMMSS' as a text string. Do I have to convert
this to the format shown in the Postgres manual: '1999-01-08 04:05:06' for
Postgres to accept the value or can I just pass an integer as
19990108040506 for the timestamp?

You need to pass it a valid timestamp, either in ISO format as you show, or
European/US/... standards (depending on your settings). There's a full list
of formats in the data-types section of the manuals.

--
Richard Huxton
Archonet Ltd

#4Bruno Wolff III
bruno@wolff.to
In reply to: Robin 'Sparky' Kopetzky (#1)
Re: Newbie timestamp question

On Wed, Mar 17, 2004 at 11:52:19 -0700,
Robin 'Sparky' Kopetzky <sparkyk@blackmesa-isp.net> wrote:

Good Morning!!

I'm repairing a series of scripts in PHP that use the 'datetime' of MySQL
and converting them to Postgres. Question is this: The datetime format used
in the script is 'YYYYMMDDHHMMSS' as a text string. Do I have to convert
this to the format shown in the Postgres manual: '1999-01-08 04:05:06' for
Postgres to accept the value or can I just pass an integer as 19990108040506
for the timestamp?

You certainly couldn't have it as an integer. Even as type unknown
(which you get by quoting the constant) it doesn't work. You can use
to_timestamp to convert the string. For example:
bruno=> select to_timestamp('19990108040506', 'YYYYMMDDHH24MISS');
to_timestamp
------------------------
1999-01-08 04:05:06+00
(1 row)

#5Robin 'Sparky' Kopetzky
sparkyk@blackmesa-isp.net
In reply to: Richard Huxton (#3)
Re: Newbie timestamp question

Thank you for all your help.

I built two simple functions (extract_timestamp, build_timestamp) to tear
apart a timestamp and put it back together to make the job easier.

Thanks again!

'Sparky'