PostgreSQL: 如何使用时间戳将仅日期和时间插入变量中?

4
错误:插入数据时遇到时间格式错误。
示例:
--Table "Test"  

create table test  
(  
name varchar(10),  
date1 timestamp,  
time1 timestamp  
);  

-- Insertion  
insert into test values('xyz','03/03/2014','02:03:04');  

1
不要依赖隐式数据类型转换。要么使用 to_date() 将字符串转换为日期,要么使用 ANSI 日期字面量。 - user330315
1个回答

8

'时间戳'类型包含日期和时间。您正在尝试分别插入日期和时间。请使用日期和时间类型:

--Table "Test"

create table test
(
name varchar(10),
date1 date,
time1 time
);

-- Insertion
insert into test values('xyz','03/03/2014','02:03:04');

或者,只使用一个字段:

--Table "Test"

create table test
(
name varchar(10),
datetime timestamp

);

-- Insertion
insert into test values('xyz','03/03/2014 02:03:04');

我建议采用第二种方法,因为可用的运算符和函数集更大,并且更容易比较时间戳。


PostgreSQL 的日期格式不是 dd-mm-yyyy 吗?(如果你设置了 datestyle 为 dmy) - underdisplayname
@soobster dd-mm-yyyy 或者 dd/mm/yyyy 将作为输入被接受 在dmy模式下(以及其他格式)。 我通常会在自己的代码中使用 yyyy-mm-dd,但在这里我只是反映OPs的输入。 - harmic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接