mysql插入的格式日期
Im使用加载数据填充导入csv文件,文件日期格式为mysql插入的格式日期,mysql,sql,date,Mysql,Sql,Date,Im使用加载数据填充导入csv文件,文件日期格式为29/11/2010,数据库格式为2010-11-29,我可以使用什么设置查询内的日期格式 我试着去约会: SET date_start = STR_TO_DATE(@from_date,'%Y-%m-%d'), 但这只会插入0000-00-00尝试以下操作 update tablename SET date_start = date_format(@from_date,'%Y-%m-%d') 使用日期格式()。它将根据格式字符串格式化日期值
29/11/2010
,数据库格式为2010-11-29
,我可以使用什么设置查询内的日期格式
我试着去约会:
SET date_start = STR_TO_DATE(@from_date,'%Y-%m-%d'),
但这只会插入0000-00-00
尝试以下操作
update tablename SET date_start = date_format(@from_date,'%Y-%m-%d')
使用日期格式()。它将根据格式字符串格式化日期值
MySQL 4.x
加载数据
将尝试按原样插入日期。它不知道格式,通常情况下,您不能对字段应用一些后处理(与加载数据
语法本身中允许的某些格式不同),并且您不能通过设置
关键字来调整值,如MySQL 5.x
相反,您可以执行以下步骤:
- 将表的列声明为
。将其名称设为VARCHAR
record\u date
- 执行
查询。它会将您的日期加载到加载数据
列中record\u date
- 将新列添加到表中,使其成为
-类型为temp\u date
:date
ALTER table t Add temp\u date
- 更新您的
列:temp\u date
Update t SET temp\u date=STR\u TO\u date(记录日期,'%d/%m/%Y')
- 删除
date列:VARCHAR
altertable t删除记录\u date
- 最后,用正确的
类型将列重命名为原始列:DATE
altertable t CHANGE temp\u DATE record\u DATE DATE
DATE
DATE类型加载到表中。将record\u date
替换为原始列的名称
MySQL 5.x
您可以使用关键字和本机替换过程,如上所述。所以,只要做:
LOAD DATA INFILE 'file.csv'
INTO TABLE t
(@date)
SET record_date=STR_TO_DATE(@date, '%d/%m/%Y')
-上面的示例只针对一列,您需要添加其他列(如果存在)。日期列名也是
record\u Date
-因此也将其更改为实际名称。Date\u FORMAT
用于格式化日期,与加载数据
格式转换无关
LOAD DATA INFILE 'file.csv'
INTO TABLE t
(@date)
SET record_date=STR_TO_DATE(@date, '%d/%m/%Y')