MySQL如何使用str_to_date函数

时间:2016-03-07 11:01:46

标签: mysql date

我必须从我的数据库中选择这个:

SELECT 
    `Atleta`,
    `Medaglia`,
    `Sport`,
    `Evento`,
    `Olimpiade`,
    STR_TO_DATE(`DataGara`, '%d/%m/%y') as Data,
    `Categoria`
FROM `ItalianAthletes` 
WHERE Medaglia <> ''
order by Data asc

之前我使用以下格式将'DataGara'字段设为Varchar(255):dd / mm / yyyy。

我想在输出中使用相同的格式,但是我得到yyyy-mm-dd格式,错误的一年,因为年份值是1900但是我得到了2019年。

我想改为与db相同的格式,即dd / mm / yyyy和右年值。

2 个答案:

答案 0 :(得分:1)

以下是使用str_to_date(string,format_mask)的方法。查看http://www.techonthenet.com/mysql/functions/str_to_date.php

mysql> SELECT STR_TO_DATE('February 01 2014', '%M %d %Y');
Result: '2014-02-01'

mysql> SELECT STR_TO_DATE('March,8,2014', '%M,%e,%Y');
Result: '2014-03-08'

mysql> SELECT STR_TO_DATE('Friday, February 28, 2014', '%W, %M %e, %Y');
Result: '2014-02-28'

mysql> SELECT STR_TO_DATE('2014,2,28 09', '%Y,%m,%d %h');
Result: '2014-02-28 09:00:00'

mysql> SELECT STR_TO_DATE('2014,2,28 09,30,05', '%Y,%m,%d %h,%i,%s');
Result: '2014-02-28 09:30:05'

mysql> SELECT STR_TO_DATE('10,15,30', '%h,%i,%s');
Result: '10:15:30'

答案 1 :(得分:0)

使用&#34;%Y&#34;,而不是&#34;%y&#34;。

https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format

  

%Y年,数字,四位数

     

%y年份,数字(两位数)

SELECT 
    `Atleta`,
    `Medaglia`,
    `Sport`,
    `Evento`,
    `Olimpiade`,
    STR_TO_DATE(`DataGara`, '%d/%m/%Y') as Data,
    `Categoria`
FROM `ItalianAthletes` 
WHERE Medaglia <> ''
order by Data asc