I need to create a table with two columns of type timestamp but I
don't want to store any fractional part of the seconds field. So,
I created a table with:
CREATE TABLE timeclock (
timeclock_id SERIAL,
employee_id INTEGER,
clockin TIMESTAMP[0] NOT NULL,
clockout TIMESTAMP[0] DEFAULT NULL,
PRIMARY KEY (timeclock_id),
FOREIGN KEY (employee_id)
REFERENCES employee
ON DELETE RESTRICT
ON UPDATE CASCADE
);
But now I can no longer insert a timestamp as I normally would:
gms=# insert into timeclock (employee_id,clockin,clockout) values(3169,now(),null);
ERROR: column "clockin" is of type timestamp without time zone[] but expression is of type timestamp with time zone
LINE 1: insert into timeclock (employee_id,clockin,clockout) values(...
^
HINT: You will need to rewrite or cast the expression.
If I cast it, I get something really strange:
gms=# insert into timeclock (employee_id,clockin,clockout) values(3169,now()::timestamp,null);
ERROR: column "clockin" is of type timestamp without time zone[] but expression is of type timestamp without time
zone
LINE 1: insert into timeclock (employee_id,clockin,clockout) values(...
^
HINT: You will need to rewrite or cast the expression.
Am I creating the table correctly? If so, how do I insert or update
rows?
Thanks.
--
Brandon