如何解析月份没有前导零的MySQL日期字符串?

bf1o4zei  于 2023-05-16  发布在  Mysql
关注(0)|答案(1)|浏览(130)

如何将'1021970'(1970年1月2日)或'12021970'(1970年12月2日)等具有不同月份长度的字符串转换为MySQL日期?

ttcibm8c

ttcibm8c1#

在月份没有前导零的字符串中(即有时它有一个数字,有时它有两个数字),日总是有一个前导零,年总是四位数:

SELECT
    IF(
        LENGTH(`your_date_column`) = 7,
        STR_TO_DATE(INSERT(`your_date_column`, 1, 0, '0'), '%m%d%Y'),
        STR_TO_DATE(`your_date_column`, '%m%d%Y')
    );

要测试:

-- January 2, 1970.
SELECT
    IF(
        LENGTH('1021970') = 7,
        STR_TO_DATE(INSERT('1021970', 1, 0, '0'), '%m%d%Y'),
        STR_TO_DATE('1021970', '%m%d%Y')
    );
-- December 2, 1970.
SELECT
    IF(
        LENGTH('12021970') = 7,
        STR_TO_DATE(INSERT('12021970', 1, 0, '0'), '%m%d%Y'),
        STR_TO_DATE('12021970', '%m%d%Y')
    );

相关问题