我必须从我的数据库中选择这个:
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和右年值。
答案 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