【发布时间】:2020-06-07 13:46:12
【问题描述】:
我正在尝试使用 SQL Shell 创建一个表以从 Kaggle (https://www.kaggle.com/sulianova/cardiovascular-disease-dataset) 导入数据。我在导入日期时遇到问题。 我已在 excel 中将日期更改为正确的格式 yyyy-mm-dd 并将其保存为 .csv 但是当我尝试复制数据时(使用https://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/ 作为指南),它会将其识别为整数。我该如何克服呢? 我知道我可以用引号输入日期,但我不能手动输入 70K 条目。
【问题讨论】:
-
您是否检查了 csv 文件以确认日期已以所需格式导出?通常,像 excel 这样的工具只会更改您看到的格式的渲染,但在内部和导出时会将其保留为狭隘的美国格式
-
我随后在记事本中打开了文件,格式看起来正确。
-
请从记事本中复制粘贴 csv 的前几行(在 Excel 切割前后)、您的 CREATE TABLE 命令和您使用的 COPY 命令。
-
您从中读取数据的网站似乎以天为单位提供年龄(可能是测量日期),而不是出生日期或测量日期。在对数据进行任何修改之前,请检查您的数据是什么。
-
这行得通(尽管我认为出生日期不正确,因为原始数据中的年龄以天为单位)。创建表。 CREATE TABLE Patient_data(id INT、年龄 DATE、性别 INT、身高 INT、体重 INT、ap_hi INT、ap_lo INT、胆固醇 INT、gluc INT、烟雾 BOOL、alco BOOL、活动 BOOL、有氧运动 BOOl);复制。 COPY patient_data FROM 'C:\kaggledata/cardio_train1.csv'DELIMITER ',' CSV HEADER;
标签: postgresql datetime