使用FORMAT更改日期格式

时间:2015-03-10 17:52:02

标签: mysql sql date date-format

我的数据库中的日期存储为varchars格式为:dd / mm / yyyy例如2015年1月3日

我正在尝试将格式更改为yyyy / mm / dd,以便将其转换为时间戳。

当我尝试这个时:

SELECT FORMAT (date, 'dd/mm/yyyy', 'yyyy/mm/dd' ) AS t FROM tracker;

每个记录只返回一个数字,恰好是当天。因此,如果我在以下日期运行查询:2015年2月3日和2014年6月2日,则查询将返回2和6.

如何让它返回正确的格式?

2 个答案:

答案 0 :(得分:3)

您似乎在这里使用了错误的MySQL功能。您正在寻找STR_TO_DATE(),它会将该日期字符串转换为MySQL可以使用的日期值。然后,您可以使用DATE_FORMAT()将其转换为您选择的新日期字符串。

SELECT DATE_FORMAT(STR_TO_DATE(date, '%d/%m/%Y'), '%Y/%m/%d') AS t FROM tracker;

答案 1 :(得分:1)

输出datetime& timestamps以特定格式显示,您可以使用DATE_FORMAT功能。

它的工作原理如下:

SELECT DATE_FORMAT(my_date_field, '%Y-%m-%d %H:%M') FROM my_table

顺便说一下,将格式指定为'%Y/%m/%d'会将日期字段显示为1999/12/31。

要在时间戳中输出日期时间值,请使用函数UNIX_TIMESTAMP