使用 FORMAT 更改日期格式
Changing date format using FORMAT
我的数据库中的日期以 varchars 格式存储:dd/mm/yyyy 例如2015 年 1 月 3 日
我正在尝试将格式更改为 yyyy/mm/dd,以便将它们转换为时间戳。
当我尝试这个时:
SELECT FORMAT (date, 'dd/mm/yyyy', 'yyyy/mm/dd' ) AS t FROM tracker;
它 return 每条记录只有一个数字,恰好是这一天。因此,如果我 运行 在以下日期查询:2/3/2015 和 6/2/2014 那么查询 returns 2 和 6.
我怎样才能使它达到 return 正确的格式?
要以特定格式输出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
。
看来您在这里使用了错误的 MySQL 函数。您正在寻找 STR_TO_DATE()
which will convert that date string into a date value which MySQL can work with. You can then use DATE_FORMAT()
将其转换为您选择的新日期字符串。
SELECT DATE_FORMAT(STR_TO_DATE(date, '%d/%m/%Y'), '%Y/%m/%d') AS t FROM tracker;
我的数据库中的日期以 varchars 格式存储:dd/mm/yyyy 例如2015 年 1 月 3 日
我正在尝试将格式更改为 yyyy/mm/dd,以便将它们转换为时间戳。
当我尝试这个时:
SELECT FORMAT (date, 'dd/mm/yyyy', 'yyyy/mm/dd' ) AS t FROM tracker;
它 return 每条记录只有一个数字,恰好是这一天。因此,如果我 运行 在以下日期查询:2/3/2015 和 6/2/2014 那么查询 returns 2 和 6.
我怎样才能使它达到 return 正确的格式?
要以特定格式输出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
。
看来您在这里使用了错误的 MySQL 函数。您正在寻找 STR_TO_DATE()
which will convert that date string into a date value which MySQL can work with. You can then use DATE_FORMAT()
将其转换为您选择的新日期字符串。
SELECT DATE_FORMAT(STR_TO_DATE(date, '%d/%m/%Y'), '%Y/%m/%d') AS t FROM tracker;