在postgres中为没有时区的数据类型时间戳插入语句NOT NULL,

时间:2013-03-20 17:40:59

标签: postgresql pg

数据库noob警报: 我想插入一个postgres表。 我想插入的字段称为make_date

字段类型为timestamp without time zone NOT NULL, 如何在此处插入今天的日期?就像现在的日期和时间?类似于下面的东西,但我无法获得dateTime.now

的正确数据类型插入格式
insert into inventory_tbl (make_date) values (dateTime.now)

2 个答案:

答案 0 :(得分:22)

使用now()CURRENT_TIMESTAMP

答案 1 :(得分:20)

除了C. Ramseyer的解决方案(正确)之外,如果您总是(或者甚至通常)希望make_date成为创建记录的日期,您可以将其默认设置为now()

alter table inventory_tbl alter make_date set default now();

然后,如果您没有将其包含在插入内容的列表中,则会自动将其设置为now()

test=> insert into inventory_tbl ( name ) values ('brick'), ('sand'), ('obsidian') returning *;
         make_date          |   name   
----------------------------+----------
 2013-03-21 09:10:59.897666 | brick
 2013-03-21 09:10:59.897666 | sand
 2013-03-21 09:10:59.897666 | obsidian
(3 rows)

INSERT 0 3