【问题标题】:Changing Date format in MySql在 MySql 中更改日期格式
【发布时间】:2011-02-10 12:53:44
【问题描述】:

我有一个大的 Csv 文件,我想将它批量加载到我的表中。此 csv 文件的一列保留日期,但采用 DD-MM-YYYY 格式。当我将此文件加载到我的表时,它不接受它,因为 MySQL DATE 格式只接受 YYYY-MM-DD。有什么办法可以在 MySQL 中改变它。我正在使用python创建我的表并将我的文件加载到表中,这实际上对这个问题无关紧要。如果有这个命令,请告诉我应该把它放在哪里? 谢谢 这是完整的代码

import MySQLdb,os

path='data_files'
absPath = os.path.abspath(path)
print absPath


#connecting to the new database
conn = MySQLdb.connect(host='localhost',
                          user='root',
                          passwd='',
                          db='iens')

db_cursor = conn.cursor()

query = "LOAD DATA LOCAL INFILE '"+ absPath + "/recencies" +"' INTO TABLE iens.recensies FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n' (restaurantID,Naam,Date,RecensieText) "

db_cursor.execute(query)

conn.commit()

【问题讨论】:

  • 向我们展示您的代码,该代码将这些数据加载到表格中并且日期格式存在问题。
  • 我不认为这是英语。为什么不能简单地使用“想要”?

标签: python mysql database


【解决方案1】:

假设您的表格有两列名为 column1column2,日期在 column2 中,这是 CSV 文件中的第二列:

LOAD DATA INFILE 'filename' (column1, @var1)
SET column2 = STR_TO_DATE(@var1, '%d-%m-%Y')

(column1, @var1) 部分说:

  • CSV 文件的第一列直接进入数据库列column1
  • CSV 文件的第二列进入变量@var1

SET column2 = 部分说:

  • 将数据库列 column2 设置为 = 符号后面的表达式中的任何内容。

【讨论】:

  • 是否可以向我展示如何在我自己的代码上执行此操作?谢谢
  • 我添加了一些解释。我希望这可以帮助您弄清楚如何将其应用到您的代码中。
【解决方案2】:

MySQL Reference Manual :: Date and Time Functions -- 参见STR_TO_DATE 将字符串转换为日期。

【讨论】:

  • 但是你能在 LOAD DATA INFILE 中使用它吗?
猜你喜欢
  • 2014-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多