在mysql过程中将日期格式转换为`dd-mm-yyyy`到`yyyy-mm-dd`

时间:2018-01-16 06:50:36

标签: mysql stored-procedures

我将表格列date中的日期格式从dd-mm-yyyy转换为yyyy-mm-dd(转换为MySQL数据库转换)。

date_format(str_to_date("date",'%d-%b-%Y'), '%Y-%m-%d')

在数据库表date中,列值可以为01-01-198701-01-87。因此,如果日期列值为01-01-1987 (YYYY),则其工作正常。如果日期值为01-01-87 (YY)且日期将更新为空,则无效。

请参阅以下程序代码:

SET @oQry = CONCAT("UPDATE ",importTable," as t1 JOIN ( SELECT id,date_format(str_to_date(",@date_fields,",'%d-%b-%Y'), '%Y-%m-%d') as date_formate FROM ",importTable," ) as t2 ON t1.id = t2.id set t1.",@date_fields," = t2.date_formate");

如果日期值在01-01-87 (YY)中,有人可以建议我们如何处理它。

1 个答案:

答案 0 :(得分:1)

小写版本('y')为两位数年份,大写('Y')为四位数年份。 https://www.w3resource.com/mysql/date-and-time-functions/mysql-date_format-function.php

所以试试这个:

select str_to_date('01-01-87','%d-%m-%Y')