将CSV导入SQL-具有日期时间/时间戳

时间:2019-02-05 14:11:14

标签: oracle date datetime import timestamp

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

在此csv文件中,列之一以以下形式提供时间戳记: 2/3/2019 12:00:00 AM(MM / DD / YY HH:MM:SS) 如果timestamp(6),我在sql中创建的相应列具有datatyoe

我的下一步是右键单击刚刚在SQL中创建的表,然后单击“导入数据”,然后执行将csv导入sql的步骤,但是时间戳未正确导入。我知道这是因为csv中的所有时间戳都是从2019年2月3日开始的,而在SQL中它的范围是 02-MAR-02 7:00:05 PM(DD-MON-YY HH:MM:SS)至20-APR-02 7: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:缺少右括号?如果我只是尝试使用datetime,则会收到错误00902:数据类型无效?有什么想法吗?

编辑#2:是的,我正在使用oracle,抱歉,这些网站上的语言有时使我感到困惑,因为我仍在学习。任何帮助仍然是美好的,特别是要逐步进行

编辑#3:谢谢您的帮助。再次抱歉,我缺乏知识,我使用的是oracle sql开发人员。 在错误地创建表之后,我然后输入了以下代码行:

更改表table_name

更改列column_name到timestamp(yourFieldName,'mm / dd / yyyy hh:mi:ss am');

但是,出现此错误。

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

我真的很感谢您的所有帮助,再次感谢大家!

我还尝试在向导中更新for enter image description here垫,但出现错误。随附的截图说明了我的所作所为

enter image description here

我认为图片不起作用,但是错误表明日期格式无法识别。

1 个答案:

答案 0 :(得分:0)

您尚未指定要用来连接到Oracle Database-TOAD的客户端? Oracle SQL Developer?还有吗...所以我不能给您具体的分步说明。

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

所需的日期格式字符串为12020 entries(不区分大小写,如果愿意,可以使用大写字母,或者使用pm代替am)。

表达式应为

@Update(onConflict = OnConflictStrategy.REPLACE)
int updateNote(Note note);