我的数据库中的日期存储为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.
如何让它返回正确的格式?
答案 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
。