web-dev-qa-db-fra.com

insérer une instruction dans postgres pour l'horodatage du type de données sans fuseau horaire NOT NULL,

Alerte noob de base de données: j'essaie d'insérer dans une table postgres. Le champ que j'aimerais insérer s'appelle make_date.

Le type de champ est timestamp without time zone NOT NULL, Comment puis-je insérer la date d'aujourd'hui? Comme la date et l'heure actuelles? Quelque chose comme ci-dessous, mais je ne parviens pas à obtenir le bon format d'insertion de type de données pour dateTime.now

insert into inventory_tbl (make_date) values (dateTime.now)
19
Doublespeed

En plus de la solution de C. Ramseyer (qui est juste), si vous voulez toujours (ou même généralement) que make_date Soit la date de création de l'enregistrement, vous pouvez définir sa valeur par défaut sur now() :

alter table inventory_tbl alter make_date set default now();

Ensuite, si vous ne l'incluez pas dans la liste des colonnes de votre insert, il sera automatiquement défini sur 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
20
Michael Granger

Utilisez now() ou CURRENT_TIMESTAMP.

22
C. Ramseyer