我使用下面的sql将数据导出到csv文件:
select * INTO outfile 'customer.csv'
FIELDs terminated by ',' enclosed by '"'
LINES terminated by '\n'
from CUSTOMER customer
where customer.date_created < '2015-10-22 10:00:00';
我在csv中得到了这个结果:
问题是数据无法从此生成的csv导入,因为日期格式与DB不同。
DB日期格式为yyyy-mm-dd hh:mm:ss。此值也将替换为\ n,在导入时也会失败。
如何使用正确的yyyy-mm-dd hh:mm:ss日期格式和空/空值生成csv列?
错误: 日期时间值不正确:&#39; 23/07/2015 11:55&#39;对于列&#39; DATE_CREATED&#39;在第1行 整数值不正确:&#39; \ N&#39;对于列&#39; column_name&#39;在第1行
注意: 我正在使用mysql workbench导入文件。 我不想直接在csv文件中更改格式/数据。
由于
更新: 感谢AdrianBR我意识到我首先使用excel打开文件,这会覆盖日期格式,因此即使使用notepad ++也会显示错误的日期格式。 \ n仍然是个问题。 首次使用notepad ++打开时,它看起来像这样: &#34; 100&#34;,&#34; 0&#34;,&#34; 2015-12-02 10:16:36&#34;,&#34; 2015-12-02 10:16:36& #34;&#34; 0&#34; \ N,
答案 0 :(得分:2)
问题很可能不是来自mysql。
很可能来自Excel显示的方式,稍后会保存日期。 麻烦:
在文本编辑器(如记事本或记事本++)中打开文件,检查日期是什么样的,如果它是否在ISO中。它可能会没事的。
现在,如果您在Excel中打开它,它将以本地格式显示。
如果您现在保存文件,则可能会使用excel的本地日期格式覆盖ISO日期格式,使其不再是有效的可导入mysql日期。
道德:在处理数据时不要使用Excel,只能用它来显示图表。 Excel以最意想不到的方式对您的数据进行假设并对其进行混乱。还记得1.19增值税税率吗? Excel似乎认为它与1月19日相同。那个整数ID? Excel认为最好用科学记数法写它并将其四舍五入到前4位数。那个Iso日期? Excel认为你最好猜测哪个是月份,哪个是日期。小数点?当然你想要逗号为十进制,而点为千位分隔符。 FTFY!答案 1 :(得分:0)
可以明确指定列,并在选择列表中包含格式,如下所示:
TO_CHAR(mydate,&#39; yyyy-mm-dd hh24:mi:ss&#39;)
编辑:
如:
SELECT my_id, my_val1, TO_CHAR( mydate, 'yyyy-mm-dd hh24:mi:ss' )
FROM mytable