更改MySQL中的日期格式

1 投票
2 回答
820 浏览
提问于 2025-04-16 11:34

我有一个很大的CSV文件,想把它批量导入到我的数据库表里。这个CSV文件里有一列是日期,但格式是DD-MM-YYYY(日-月-年)。当我把这个文件导入到表里时,MySQL不接受这个格式,因为MySQL的日期格式只接受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()

2 个回答

1

MySQL参考手册 :: 日期和时间函数 -- 查看STR_TO_DATE,可以把字符串转换成日期。

4

假设你的表格有两列,分别叫做 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 列设置为等号后面表达式的结果。

撰写回答