当前位置: 首页 > 面试题库 >

如何使用MySQL的LOAD DATA LOCAL INFILE在导入CSV时将字符串日期更改为MySQL日期格式

丁沛
2023-03-14
问题内容

我正在使用MySQL的LOAD DATA LOCAL INFILE SQL语句将数据从CSV文件加载到现有数据库表中。

这是一个示例SQL语句:

LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(name, address, dateOfBirth)

CSV中映射到dateOfBirth字段的第三列当前具有以下格式的日期:

14-Feb-10

如何修改上述SQL语句以将日期格式化为MySQL的日期格式,即2010-02-14

我知道在使用普通INSERT语法时如何转换字符串日期:

STR_TO_DATE('14-Feb-10', '%d-%b-%y')


问题答案:

您需要使用该SET子句以及一个变量来引用该列中行的内容。在列列表中,将日期列分配给变量名称。然后,您可以在SET语句中使用它。(请注意,我还没有MySQL可以对此进行测试。)

LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(name, address, @var1)
set dateOfBirth = STR_TO_DATE(@var1, '%d-%b-%y')

请参见以下页面中的示例:http : //mysql2.mirrors-r-us.net/doc/refman/5.1/en/load-
data.html
(不确定为什么该页面似乎与它实际上包含SET用法示例。)



 类似资料:
  • 问题内容: (大家好。我特别喜欢SQL和MySQL。我知道一些PHP。) 我有一个包含“ date_string”列的表。出于传统原因,这是一个文本字段,其中包含d / m / YY格式的日期。例如2009年11月22日为“ 22/11/09”。 问题:如何将此列中的所有字段都转换为标准的MySQL日期格式(YYYY-mm-dd),就地? 或者,由于列类型是文本,因此无法将其更改到位,我该如何获取

  • 问题内容: 我正在将第一个CSV导入MySQL,并注意到CSV中的日期具有格式。如何将其转换为DATE数据类型?首先想到的是让PHP进行转换,然后将其插入第二个表中,但我想那是不对的。 问题答案: 您可以在从CSV文件导入数据的过程中替换格式,例如- 它将像“ 31-Jan-2011”这样的字符串格式化为正确的DATETIME数据类型。 这里的更多信息-LOAD DATA INFILE语法。

  • 我有类似“2021-06-01”的字符串,我希望将其转换为“2021-06-01T00:00:00+02:00”。我知道,最简单的解决方案是串接: 但是,我希望使用来实现。目前我的解决方案是: 然后使用: 然而,它抱怨说: 有解决办法吗?

  • 问题内容: 我有一列用作,我想将其选择为。 可能吗? 我的样本数据格式为;-> 问题答案: 正如MySQL所讲的,使用带有日期文本的字符串列作为日期字段,您可以 您还可以在子句中处理这些日期字符串。例如 您可以通过这种方式处理各种日期/时间布局。请参考该函数的格式说明符,以了解可以在中添加第二个参数的内容。

  • 问题内容: 我正在进行数据库迁移,并且我目前有一个带有日期的字符串列(相对于为它们设置了最佳的datetime字段)。有没有可以在MySQL中调用的函数将该字段转换为日期时间,以便可以使用该日期之前或之后的日期功能? 问题答案: 如果您的日期格式不正确,请使用:

  • 我有一个字符串变量,其中包含以下格式的日期和时间 编辑: 我需要使用简单的格式将其转换并解析为这种日期格式,如下所示: 但是我不知道使用简单格式转换的字符串模式。 我已经给出了 但它给了我错误的输出。 simpledateformat sdf的字符串模式是否正确?如果我错了,有人可以请纠正我在转换新日期到日期和格式。