mysql

时间:2017-07-12 21:24:11

标签: mysql

开发人员为我们创建了一个表,并将日期字段设为VARCHAR(255),字段名称为“请求发货日期”。

首先是的,我知道这些都是糟糕的数据库管理,但我没有参与创建点,就在现在请运行报告点。

所以,我正在尝试将此字段转换为日期值,并且正在使用STR_TO_DATE(Requested Ship Date,"%m/%d/%y")(它在代码中具有正确的语法)

问题是我得到了一个奇怪的结果。 '请求发货日期'=转换后的5月31日,即2020-05-31。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

%y是没有世纪的年份,%Y世纪。

所以2017年被解释为'20,即2020年。

答案 1 :(得分:0)

这是我从查询中得到的结果

05/30/2017 05/31/2017 2017-05-30

05/30/2017 05/31/2017 2017-05-30

05/31/2017 05/31/2017 2017-05-31

以下是查询的实际代码

    select  `Requested Ship Date`,
            `Actual Post Goods Issue date`,
            STR_TO_DATE(`Requested Ship Date`,'%m/%d/%Y')
    FROM        `previous day shipments`
    WHERE       LENGTH(`Serial Number`) = 0