如何使用 Sequel Pro 在导入期间将字符串更改为日期?

How to change a string to a date during import using Sequel Pro?

我正在尝试使用 Sequel Pro 将文件导入 MySQL table。

我知道我需要使用 STR_TO_DATE,但我想不出正确的语法。

每一行我都收到了一堆这样的错误:

[ERROR in row 1] 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 date = STR_TO_DATE(@'11/1/11', '%m/%d/%Y');,'Amazon','USD')' at line 2

这是我正在做的事情:

1 文件 > 导入。文件出现,CSV 中的日期字段是第 14 行:

2) Select 日期 > 添加表达式

3) 在表达式 window 中,添加此代码:

, SET date = STR_TO_DATE(@, '%m/%d/%Y');

4) 得到这个结果:

5) 得到上面的错误。什么是正确的语法?

让您了解我要导入的 table 可能会有所帮助:

CREATE TABLE `Amazon_copy4` (
  `key` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `Title` varchar(255) DEFAULT NULL,
  `Author` varchar(255) DEFAULT NULL,
  `ASIN` varchar(255) DEFAULT NULL,
  `Units Sold` int(11) DEFAULT NULL,
  `Units Refunded` int(11) DEFAULT NULL,
  `Net Units Sold or KU/KOLL Units**[1]` int(11) DEFAULT NULL,
  `Royalty Type[2]` varchar(255) DEFAULT NULL,
  `Transaction Type*[3]` varchar(255) DEFAULT NULL,
  `Avg. List Price without VAT` decimal(19,2) DEFAULT NULL,
  `Average File Size` float(5,2) DEFAULT NULL,
  `Avg. Offer Price without VAT` varchar(255) DEFAULT NULL,
  `Average Delivery Cost` varchar(255) DEFAULT NULL,
  `Royalty` decimal(19,2) DEFAULT NULL,
  `date` date DEFAULT NULL,
  `country` varchar(255) DEFAULT NULL,
  `currency` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`key`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

在错误消息中,AmazonUSD 是每行中跟在日期(countrycurrency)之后的字段的值。

提前致谢!

我想通了。

需要两件事才能让 UI 执行导入。

1) 在表达式 window 中,这是要使用的语法:

STR_TO_DATE(@,'%m/%d/%Y') 

所以删除 SET date = 部分,只在 STR_TO_DATE() 的括号内定义行。

2) 此外,您还必须清除 使用上次编辑的值 .

的复选框

看起来像这样:

单击“确定”后,CSV 导入如下所示:

然后……

是的!

我希望这对某人有所帮助。

对于遇到此问题的任何人,我发现 post 有另一种解决方案

https://wpwhatnot.com/change-date-format-on-import-to-mysql-from-csv-file/

这对我有用

您需要输入 STR_TO_DATE(,'%m/%d/%Y') 而没有 @。 (并且应选中 SQL 复选框。)

如果取消选中 'Last edited value' 复选框,则不会向该字段添加任何内容,因此不会引发错误。您要么需要选中它,要么 select 您之后的自定义表达式。