postgresql - 表创建的日期/时间格式

标签 postgresql date datetime database-design postgresql-copy

我正在创建一个表格,该表格将使用 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) .
切勿为此使用字符串类型(textvarchar、...)。

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/

相关文章:

json - 如何使用 Sequelize 和 node.js 进行批量插入

Java - 确定用户输入\n和按html形式按回车之间的区别

postgresql - Sequelize Include 在没有结果的情况下不起作用

python - GAE Python - 'Clamp' 日期一起形成 'tree' 结构

python - 如何从极地日期计算月份的开始和结束日期?

python - 格式化 pandas datetime 对象以显示从 2 月到 2 月的财政年度并格式化为 %Y?

ruby-on-rails - 如何编写仅查看日期时间字段的时间部分的 activerecord 查询?

javascript - POST 请求返回 [Object, object]

wcf - 如何序列化 WCF 中的 UTC 日期时间以在末尾包含 "Z"?

php - 按日期获取工作日