MySQL将日期从mm-dd-yyyy转换为YYYY-MM-DD格式

时间:2018-09-05 11:14:22

标签: mysql sql date

我想将给定日期从 mm-dd-yyyy 转换为 YYYY-MM-DD format

我尝试关注

SELECT DATE_FORMAT("09-02-2018",'YYYYMMDD')

SELECT DATE_FORMAT("09-02-2018", "%MM %dd %YY");

SELECT CURDATE("09-02-2018");

SELECT DATE_FORMAT("09-02-2018", "%Y-%m-%d")

它对于当前日期有效,但不适用于给定日期。

5 个答案:

答案 0 :(得分:0)

您将需要使用STR_TO_DATE函数。从MySQL文档中:

  

它采用字符串str和格式字符串格式。 STR_TO_DATE()   如果格式字符串同时包含日期和日期,则返回DATETIME值   时间部分,如果字符串仅包含日期,则为DATE或TIME值   或时间部分。如果从str中提取了日期,时间或日期时间值   是非法的,STR_TO_DATE()返回NULL并产生警告。

     

服务器将扫描str,以尝试将格式与之匹配。格式   字符串可以包含文字字符和格式说明符   与%。格式的文字字符必须在str中字面匹配。   格式的格式说明符必须与str中的日期或时间部分匹配。

  • %m将月份名称表示为数字值(00到12)
  • %d用数字值(01到31)表示月份中的某天
  • %Y将Year表示为4位数字

由于您输入的日期为mm-dd-yyyy格式,因此此处使用%m-%d-%Y作为格式。检查以下代码:

SELECT STR_TO_DATE('09-02-2018', '%m-%d-%Y');

答案 1 :(得分:0)

原始格式不是MySQL格式,因此DATE_FORMAT不起作用

您应该做类似的事情

SET @toconvert = '09-02-2018';
SELECT
    CAST(CONCAT(SUBSTR(@toconvert,7,4),'-',SUBSTR(@toconvert,4,2),'-',SUBSTR(@toconvert,1,2)) AS DATE);

答案 2 :(得分:0)

使用STR_TO_DATE函数将字符串日期转换为日期类型。例如:

data-fancybox-trigger

答案 3 :(得分:0)

您可以使用以下语法获取格式的日期。

DATE_FORMAT(STR_TO_DATE(myVal, '%d.%m.%y'), '%Y-%m-%d')

谢谢

答案 4 :(得分:0)

使用STR_TO_DATE http://sqlfiddle.com/#!9/a6c585/71892

    try:
    with open(csv_file, 'w') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames=csv_columns, extrasaction='ignore')
        writer.writeheader()
        for data in doc["Stocks"]:
            data['category'] = 'fruits'
            writer.writerow(data)
except IOError:
    print("I/O error")