【问题标题】:Import CSV to SQL - with datetime/timestamp将 CSV 导入 SQL - 使用日期时间/时间戳
【发布时间】:2019-06-29 09:11:42
【问题描述】:

我目前正在将 CSV(包含数千行)导入 SQL。 到目前为止,我已经在 SQL 中创建了一个表,并用列名填充了它,以及与列名对应的数据类型(所有这些都对应于 csv 中的列)

在此 csv 文件中,其中一列以以下形式给出时间戳: 2/3/2019 上午 12:00:00 (MM/DD/YY HH:MM:SS) 我在sql中创建的对应列有一个datatyoe if timestamp(6)

我的下一步是右键单击我刚刚在 SQL 中创建的表并点击“导入数据”,然后执行将 csv 导入 sql 的步骤,但是,时间戳未正确导入。我知道这一点是因为 csv 中的所有时间戳都来自 2019 年 2 月 3 日,而在 SQL 中它的范围从 20-MAR-02 7:00:05 PM(DD-MON-YY HH:MM:SS)至 20-APR-02 7:00:00 PM(DD-MON-YY HH:MM:SS)

我不知道如何让格式从 csv(MM/DD/YY HH:MM:SS) 匹配到 SQL(DD-MON-YY HH:MM:SS)

感谢任何帮助!谢谢!!

编辑:@Sean Lange:谢谢!当我尝试使用 datetime(6) 作为数据类型时,我收到一条错误消息,指出 00907:missing right parenthesis?如果我只尝试日期时间,我会收到错误 00902:无效数据类型?有什么想法吗?

Edit#2:是的,我正在使用 oracle,抱歉,这些网站上的语言有时让我感到困惑,因为我还在学习。任何帮助仍然会很棒,具体一步一步进行

编辑#3:感谢您的帮助。再次抱歉我缺乏知识,我正在使用 oracle sql developer。 错误创建表格后,我输入了以下代码行:

修改表table_name

alter column column_name to_timestamp(yourFieldName, 'mm/dd/yyyy hh:mi:ss am');

但是,我收到了这个错误。

错误报告 - ORA-01735: 无效的 ALTER TABLE 选项 01735. 00000 - “无效的 ALTER TABLE 选项”

真的很感谢大家的帮助,再次感谢大家!

我还尝试在向导中更新 forenter image description heremat 并收到错误消息。附件是解释我做了什么的截图

enter image description here

我认为图片不起作用,但错误说日期格式未被识别。

【问题讨论】:

  • 这是因为时间戳不是日期时间数据类型。它是 rowversion 的同义词。 docs.microsoft.com/en-us/sql/t-sql/data-types/… 它也是一种与时间无关的可怕命名数据类型。但我想知道您是否真的在使用时间戳,因为您无法使用该数据类型指定大小。您应该使用 datetime 来保存日期时间信息。
  • 通过最近的编辑,您似乎很可能没有使用 sql server,但实际上使用的是 Oracle。错误消息是 Oracle 错误消息。您使用的是哪个 DBMS??

标签: oracle date datetime import timestamp


【解决方案1】:

您尚未指定要使用什么客户端连接到 Oracle 数据库 - TOAD?甲骨文 SQL 开发者?还有什么? ...所以我不能给你具体的分步说明。

但是,您的基本问题是您需要将文本字符串转换为时间戳,为此您需要输入日期格式字符串。您的“导入数据”向导应该有一个步骤,用于 (a) 输入表达式或 (b) 输入日期格式。

您想要的日期格式字符串是'mm/dd/yyyy hh:mi:ss am'(不区分大小写,如果您愿意,可以使用大写字母,或者使用 pm 代替 am)。

表达式是

to_timestamp(yourFieldName, 'mm/dd/yyyy hh:mi:ss am')

【讨论】:

    猜你喜欢
    • 2012-09-23
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2017-04-14
    • 2017-04-06
    相关资源
    最近更新 更多