Postgresql 表创建的日期/时间格式

Postgresql 表创建的日期/时间格式,postgresql,date,datetime,database-design,postgresql-copy,Postgresql,Date,Datetime,Database Design,Postgresql Copy,我正在创建一个表,该表将填充副本。以下是该数据的格式: 6/30/2014 2:33:00 PM MM-DD-YYYY HH:MM:SS ?? 我将使用什么作为CREATE TABLE语句的格式 CREATE TABLE practice ( Data_Time ???? ) 另一种方法是读取为varchar(),然后稍后格式化。看起来很复杂。在postgres中几乎不应该使用vharchar()。始终使用文本。但我觉得你想要两列 create table practice (date_t

我正在创建一个表,该表将填充
副本
。以下是该数据的格式:

6/30/2014  2:33:00 PM
MM-DD-YYYY HH:MM:SS ??
我将使用什么作为
CREATE TABLE
语句的格式

CREATE TABLE practice (
Data_Time ????
)

另一种方法是读取为
varchar()
,然后稍后格式化。看起来很复杂。

在postgres中几乎不应该使用vharchar()。始终使用文本。但我觉得你想要两列

create table practice (date_time timestamp, format text)

始终将时间戳存储为。
千万不要使用字符串类型(
text
varchar
,…)来实现这一点

CREATE TABLE practice (
  practice_id serial PRIMARY KEY
, data_time timestamp NOT NULL
);
如果您的时间戳文字是干净的,并且遵循标准的
MDY
格式,您可以将事务的临时设置为直接读取正确的
timestamp
类型:

BEGIN;
SET LOCAL datestyle = 'SQL, MDY';  -- works for your example
COPY practice (data_time) FROM '/path/to/file.csv';
COMMIT;
否则,您的想法也没那么糟糕:
复制到带有
文本
列的临时表中,清理数据并插入时间戳(可能使用)。例如:


文本和varchar之间没有区别(没有限制!),为什么还要麻烦呢?