【发布时间】:2020-10-07 03:59:03
【问题描述】:
我正在尝试将时间戳从 Oracle 转换为 Mysql。我有一个数据文本文件,试图在 MySQL 数据库中加载数据,但出现 SQL 语法错误。请帮忙
LOAD DATA INFILE '/check/value.txt' INTO TABLE TEST FIELDS TERMINATED BY '|' (ID, @DATETIME) SET DATETIME = CONVERT_TZ(REPLACE(SUBSTRING_INDEX(@DATETIME, '-', 3),"T"," "), "-07:00", "+00:00");
时间戳示例 - 2020-10-07T05:21:05-7:00。
下面是错误
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET DATETIME = CONVERT_TZ(REPLACE(SUBSTRING_INDEX(@DATETIME, '-', 3),"T"," "), "-07:00", "+00:00")'
【问题讨论】:
-
尝试参考以下链接。 stackoverflow.com/questions/38125393/…
-
@CDN 在我的情况下输入格式不同,它不适合我
-
1) MySQL 将
@time视为用户定义的变量。它是否显示了价值? 2) 该值包含多余的T和-7:00,这些在模式中未提及。 3) MySQL 不能通过这种方式使用时区信息(在 datetime 文字中),它只能在没有 timezone 的 clear datetime 下运行。 4)Set time中的time被视为局部变量,在复合语句之外是不合法的。 遇到 SQL 语法错误我们没有看到错误消息文本... -
您的
LOAD DATA语句在语法上不正确。如果DATETIME是TEST表结构中的列名,则必须用反引号将其包装起来,因为DATETIME是保留字。 -
@Akina 我已将列名从 'DATETIME' 更改为 'LASTTIME' 并根据需要更改 LOAD 查询但得到相同的错误
标签: mysql unix unix-timestamp