gpt4 book ai didi

sql - 如何解释这个涉及 current_date 的插入语句的行为

转载 作者:行者123 更新时间:2023-11-29 12:13:31 25 4
gpt4 key购买 nike

我在 postgreSQL 8.2 的 fork 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)

My question is : Why does the first insert statement output the correct date when I use current_date::date and the second insert outputs two incorrect dates when I use the same current_date::date cast?

最佳答案

这个结果是不正确的、出乎意料的和奇怪的。

PostgreSQL 9.2.4 生成正确的结果。

regress=> select * from test;
t_date
---------------------
2013-08-20 00:00:00
2013-08-20 00:00:00
(2 rows)

as does 8.3, the oldest version I can be bothered testing .

无论您使用的 PostgreSQL 的哪个补丁/破解版本都引入了错误。

关于sql - 如何解释这个涉及 current_date 的插入语句的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18326802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com