更改MySQL中的日期格式
我有一个很大的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
假设你的表格有两列,分别叫做 column1
和 column2
,日期在 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
列设置为等号后面表达式的结果。