将时间戳插入PostgreSQL表

时间:2016-03-28 11:21:24

标签: sql postgresql

我想将TIMESTAMP插入LAST_LOGIN列

CREATE TABLE USER(
 ID INTEGER NOT NULL,
 USER_NAME TEXT,
 FIRST_NAME TEXT,
 LAST_NAME TEXT,
 LAST_LOGIN DATE,
 DATE_REGISTERED DATE,
 ROLE INTEGER,
 CAN_LOGIN INTEGER
)
;

ALTER TABLE USER ADD CONSTRAINT KEY1 PRIMARY KEY (ID)
;

我试过了:

UPDATE USERS SET LAST_LOGIN = TIMESTAMP WHERE USER_NAME = ?

但我得到org.postgresql.util.PSQLException: ERROR: column "timestamp" does not exist Position: 31

将当前时间插入表格列LAST_LOGIN的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

TIMESTAMP不是已知函数POSTGRES,因此,它将其识别为列。

POSTGRES日期/时间函数:

NOW();
current_date;
current_time;
current_timestamp;

所以你的正确查询应该是

UPDATE USERS SET LAST_LOGIN = now() WHERE USER_NAME = ?

You can read all about postgres time/date functions in this document.

答案 1 :(得分:1)

可能错误来自使用错误的功能。试试这个:

UPDATE USERS SET LAST_LOGIN = CURRENT_TIMESTAMP WHERE USER_NAME = ?