如何将时间戳从Oracle转换为Mysql

问题描述

我正在尝试将时间戳从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,"+00:00")' 

解决方法

您可以尝试以下方法:

SELECT CONVERT_TZ(REPLACE(SUBSTRING_INDEX("2020-10-07T05:21:05-7:00",'-',3),"T"," "),"-07:00","+00:00");
,
SET @time := '2020-10-07T05:21:05-7:00';
SELECT CONVERT_TZ(STR_TO_DATE( @time,'%Y-%m-%dT%H:%i:%s'),-- datetime only
                  REGEXP_SUBSTR(@time,'[\+\-][0-9]{1,2}:[0-9]{2}$'),-- timeshift only
                  '+00:00') AS datetime_GMT;

fiddle

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...