我正在对 postgreSQL 8.2 的分叉 MPP 版本尝试一个非常简单的测试查询,我试图弄清楚这是否是预期的行为。
当我使用 current_date 为单行执行插入语句时,我得到当前日期的预期输出:
create table test( t_date timestamp without time zone);
insert into test( t_date)
VALUES
(
current_date::date
),
db=> select * from test ;
t_date
---------------------
2013-08-19 00:00:00
(1 row)
但是当我在插入语句中添加多行时,我得到了一个意想不到的结果——这是标准的一部分吗?
insert into test( t_date)
VALUES
(
current_date::date
),
(
current_date::date
);
db=> select * from test ;
t_date
---------------------
1999-12-31 00:00:00
1999-12-31 00:00:00
(2 rows)
我的问题是:为什么当我使用 current_date::date 时第一个插入语句输出正确的日期,而当我使用相同的 current_date::date 转换时第二个插入输出两个不正确的日期?