如何使用 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;
在错误消息中,Amazon
和 USD
是每行中跟在日期(country
和 currency
)之后的字段的值。
提前致谢!
我想通了。
需要两件事才能让 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 您之后的自定义表达式。
我正在尝试使用 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;
在错误消息中,Amazon
和 USD
是每行中跟在日期(country
和 currency
)之后的字段的值。
提前致谢!
我想通了。
需要两件事才能让 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 您之后的自定义表达式。