Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从CSV导入(我的)SQL数据库时,是否可以将Unix时间戳自动转换为DATETIME列?_Mysql_Csv_Datetime_Unix Timestamp - Fatal编程技术网

Mysql 从CSV导入(我的)SQL数据库时,是否可以将Unix时间戳自动转换为DATETIME列?

Mysql 从CSV导入(我的)SQL数据库时,是否可以将Unix时间戳自动转换为DATETIME列?,mysql,csv,datetime,unix-timestamp,Mysql,Csv,Datetime,Unix Timestamp,我创建了一个具有timestamp DATETIME列的表,并尝试从具有Unix时间戳行的CSV文件导入数据 但是,当我尝试使用DataGrip的CSV导入功能时,会出现错误 1:1: conversion failed: "1394669640" to datetime 2:1: conversion failed: "1394670060" to datetime 3:1: conversion failed: "1394670480" to datetime 4:1: conversion

我创建了一个具有
timestamp DATETIME
列的表,并尝试从具有Unix时间戳行的
CSV
文件导入数据

但是,当我尝试使用DataGrip的CSV导入功能时,会出现错误

1:1: conversion failed: "1394669640" to datetime
2:1: conversion failed: "1394670060" to datetime
3:1: conversion failed: "1394670480" to datetime
4:1: conversion failed: "1394670780" to datetime
也许dataGrip不是最好的工具,但考虑到我无法直接访问运行DB服务器[*]的机器,这几乎是我所能做的。显然,如果我将列设置为
INT
,这是可行的

是否有一种配置表的方法,以便自动进行转换



[*]我知道,但DBMS是在Docker容器内运行的,因此,除了复制主机上的CSV文件,然后在容器内,我不能玩
加载数据填充
之类的把戏,并使用
FROM_UNIXTIME()

设置列,您可以使用
加载数据本地填充
将CSV文件加载到远程MySQL(即在docker容器内),无需将CSV文件复制到容器中

mysql> create table MyTable (timestamp DATETIME PRIMARY KEY);

mysql> load data local infile 'data.csv' into table MyTable (@dummy) 
    SET timestamp = FROM_UNIXTIME(@dummy);
Query OK, 4 rows affected (0.01 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from MyTable;
+---------------------+
| timestamp           |
+---------------------+
| 2014-03-13 00:14:00 |
| 2014-03-13 00:21:00 |
| 2014-03-13 00:28:00 |
| 2014-03-13 00:33:00 |
+---------------------+
请注意,需要在服务器上启用
local infle
选项,以允许远程客户端,也需要在客户端中启用该选项。要执行上述示例,我必须在服务器的
/etc/my.cnf
中启用
local infle=1
,并且我还使用选项
mysql--local infle
运行客户端,而不使用这两个选项s、 我犯了一个非常令人困惑的错误:

错误1148(42000):此MySQL版本不允许使用该命令

详情请阅读