我正在创建一个表格,该表格将使用 COPY
进行填充。这是该数据的格式:
6/30/2014 2:33:00 PM
MM-DD-YYYY HH:MM:SS ??
CREATE TABLE
语句的格式是什么?
CREATE TABLE practice (
Data_Time ????
)
一种替代方法可能是读取为 varchar()
然后稍后格式化。看起来很费解。
最佳答案
始终将时间戳存储为 timestamp
(or timestamptz
) .
切勿为此使用字符串类型(text
、varchar
、...)。
CREATE TABLE practice (
practice_id serial PRIMARY KEY
, data_time timestamp NOT NULL
);
如果您的时间戳字面值是干净的并且遵循标准的MDY
格式,您可以设置DateStyle
暂时让事务直接读取正确的 timestamp
类型:
BEGIN;
SET LOCAL datestyle = 'SQL, MDY'; -- works for your example
COPY practice (data_time) FROM '/path/to/file.csv';
COMMIT;
否则,您的想法还不错:COPY
到一个包含text
列的临时表,清理数据并从那里插入
时间戳可能使用 to_timestamp()
.示例:
关于postgresql - 表创建的日期/时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28905458/