mysql - 转换后更新存储为 VARCHAR 的表中的 DATE

标签 mysql date str-to-date

我从 Excel 导入数据并以 VARCHAR 格式将日期作为 03/24/2017 引入,因为日期未保存。所以我使用 VARCHAR 是为了方便。现在我正在付出代价。

我正在尝试使用 STR_TO_DATE 函数进行转换,以便我可以更新行中的新列(定义为 DATE)。

当我使用以下内容时,它看起来很有希望,但只有月/日正确转换,年份变为 2020,如下所示:

date_order $conv_date_order

2017/3/24 2020-03-24

    SELECT  date_order, STR_TO_DATE(date_order, '%m/%d/%y')     AS $conv_date_order,
            date_shipped, STR_TO_DATE(date_shipped, '%m/%d/%y') AS $conv_date_shipped,
            date_need, STR_TO_DATE(date_need, '%m/%d/%y')       AS $conv_date_need
    FROM    Orders
    WHERE   Orders.id = $id;

最佳答案

您需要在 '%m/%d/%Y' 格式字符串中使用大写 Y 来指示四位数年份。小写的 y 表示两位数的年份。

关于mysql - 转换后更新存储为 VARCHAR 的表中的 DATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43103550/

相关文章:

sql - Informix 中的日期格式

mysql - STR_TO_DATE 和 ISO8601 原子时间格式

php - 表中同一字段的多个查询

java - 字符串到日期的转换给出了错误的日期

php - 将这两个 MySQL 查询合并为一个

javascript - 自定义过滤器,用于替换从 Sharepoint 返回的 json 日期中的某些字符串字符

jquery - datepicker 中的 getFullYear 问题

mysql - 使用 STR_TO_DATE() MySQL 的空值

mysql - 为多列的每一行选择最小值和最大值

php - 获取相同值最大的列