Postgres extract()年份在插入

时间:2017-02-13 08:52:24

标签: postgresql date

我有这个插入查询:

INSERT INTO passation 
VALUES 
(default,0,0,0,0,SELECT extract(YEAR FROM now()),'Nouvelle Passation','Téléphonique',now(),'Normale',0) 

但是这一年不起作用,我不知道为什么,请帮助,因为单独它起作用:

SELECT extract(YEAR FROM now())

这是Postgres错误:

ERROR:  syntax error at or near "SELECT"
LINE 2: ...default,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,SELECT ext...
                                                             ^

********** Erreur **********

ERROR: syntax error at or near "SELECT"
État SQL :42601
Caractère : 82

我必须将年份变成变量吗?

2 个答案:

答案 0 :(得分:0)

SELECT声明中删除INSERT

INSERT INTO passation 
VALUES (
   DEFAULT,
   0,
   0,
   0,
   0,
   extract(YEAR FROM now()),
   'Nouvelle Passation',
   'Téléphonique',
   now(),
   'Normale',
   0
); 

答案 1 :(得分:0)

不要使用SELECT - 使用表达式"原样":

INSERT INTO passation 
VALUES 
(default,0,0,0,0,extract(YEAR FROM now()),'Nouvelle Passation','Téléphonique',now(),'Normale',0) 

在线示例:http://rextester.com/NBB7282

请注意,不指定目标列会被视为错误的编码样式。类似的东西:

 INSERT INTO passation (id, col1, col2, ....) 
 values ....

更好。

显然,您也试图将周数存储在另一列中。我不会这样做。只需将now()的值存储在一个列中。这样,您可以随时存储完整的信息,然后随时提取年,月,日,秒或任何您想要的任何信息。