dbTalk Databases Forums  

how to cast localtimestamp to bigint???

comp.databases.postgresql.novice comp.databases.postgresql.novice


Discuss how to cast localtimestamp to bigint??? in the comp.databases.postgresql.novice forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Pradeepkumar, Pyatalo
 
Posts: n/a

Default how to cast localtimestamp to bigint??? - 08-12-2004 , 09:47 AM







Hi,

I am having a table something like this....

CREATE TABLE(PointId integer, PointName varchar(50),PointType integer,
createtime bigint);

where createtime is the current timestamp when the tuple is inserted.

now how do I insert values into the above table. Is there a way to cast
timestamp to bigint.
Also can anyone suggest as to which date function to use -
CURRENT_TIMESTAMP, LOCALTIMESTAMP, timeofday(), now....


Quote:
With Best Regards
Pradeep Kumar P J

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo (AT) postgresql (DOT) org



Reply With Quote
  #2  
Old   
Edmund Bacon
 
Posts: n/a

Default Re: [SQL] how to cast localtimestamp to bigint??? - 08-12-2004 , 11:58 AM






I would have expected

SELECT current_timestamp::abstime::bigint;

to have worked, but there is no conversion abstime -> bigint.

Instead use

SELECT current_timestamp::abstime::int::bigint;

The final cast to bigint is not strictly neccessary.

This all begs the question, though, of why you are using a bigint for
createtime and not a timestamp?


Pradeepkumar, Pyatalo (IE10) wrote:
Quote:
Hi,

I am having a table something like this....

CREATE TABLE(PointId integer, PointName varchar(50),PointType integer,
createtime bigint);

where createtime is the current timestamp when the tuple is inserted.

now how do I insert values into the above table. Is there a way to cast
timestamp to bigint.
Also can anyone suggest as to which date function to use -
CURRENT_TIMESTAMP, LOCALTIMESTAMP, timeofday(), now....



With Best Regards
Pradeep Kumar P J



---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
--
Edmund Bacon <ebacon (AT) onesystem (DOT) com>

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo (AT) postgresql (DOT) org



Reply With Quote
  #3  
Old   
Guy Fraser
 
Posts: n/a

Default Re: [SQL] how to cast localtimestamp to bigint??? - 08-13-2004 , 09:44 AM



You don't need to use a bigint, read the documentation on data types.

There are a number of different things you can use for a timestamp, here
are a few :

abstime
abstime with timezone
timestamp
timestamp with timezone

Then when you are inserting your data, you can use 'now' as the time.

Eg.
CREATE TABLE pointy_stuff (
PointId integer,
PointName varchar(50),
PointType integer,
CreateTime abstime
);

INSERT INTO pointy_stuff (
PointId,
PointName,
PointType,
CreateTime
) VALUES (
'12345',
'point1',
'1',
'now'
);

I believe abstime is the smallest timestamp, but I could be wrong.

To output the data as a bigint I believe you can use this.

SELECT
PointId,
PointName,
PointType,
date_part('epoch',CreateTime) as unix_ts
FROM
pointy_stuff
;

Hope that helps.

Pradeepkumar, Pyatalo (IE10) wrote:

Quote:
Hi,

I am having a table something like this....

CREATE TABLE(PointId integer, PointName varchar(50),PointType integer,
createtime bigint);

where createtime is the current timestamp when the tuple is inserted.

now how do I insert values into the above table. Is there a way to cast
timestamp to bigint.
Also can anyone suggest as to which date function to use -
CURRENT_TIMESTAMP, LOCALTIMESTAMP, timeofday(), now....



---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster



Reply With Quote
  #4  
Old   
george young
 
Posts: n/a

Default Re: [SQL] how to cast localtimestamp to bigint??? - 08-13-2004 , 12:34 PM



On Thu, 12 Aug 2004 07:47:06 -0700
"Pradeepkumar, Pyatalo (IE10)" <Pradeepkumar.Pyatalo (AT) honeywell (DOT) com> threw this fish to the penguins:

Quote:
I am having a table something like this....

CREATE TABLE(PointId integer, PointName varchar(50),PointType integer,
createtime bigint);

where createtime is the current timestamp when the tuple is inserted.

now how do I insert values into the above table. Is there a way to cast
timestamp to bigint.
Also can anyone suggest as to which date function to use -
CURRENT_TIMESTAMP, LOCALTIMESTAMP, timeofday(), now....
You could use(from http://www.postgresql.org/docs/7.4/s...TETIME-EXTRACT)

EXTRACT (field FROM source)
epoch

For date and timestamp values, the number of seconds since 1970-01-01 00:00:00-00 (can be negative); for interval values, the total number of seconds in the interval

e.g.:

select CURRENT_TIMESTAMP, extract('epoch' from CURRENT_TIMESTAMP)::bigint;
(1 row)
timestamptz | date_part
-------------------------------+------------
2004-08-13 13:27:30.715408-04 | 1092418051

The bigint cast will round to the nearest second.


See:
http://www.postgresql.org/docs/7.4/s...TETIME-CURRENT

for subtleties of various current time/date functions.

-- George Young
--
"Are the gods not just?" "Oh no, child.
What would become of us if they were?" (CSL)

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo (AT) postgresql (DOT) org so that your
message can get through to the mailing list cleanly



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.