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

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to