使用强制转换的mysql查询中的格式化日期

时间:2013-05-03 14:47:15

标签: mysql date time casting

我已将此作为查询的选择部分:

SELECT cast(cast(exp_channel_titles.edit_date as char(14)) as datetime) AS Edit_Date

以此格式20130501092128从数据库获取数据并以此格式返回2013-05-01 09:21:28

我只能假设它是某种魔法,因为我不完全理解这是如何工作的。

但是,我需要将它吐出的日期格式更改为以下格式:%d /%m /%Y%k:%i:%s

我可以诚实地说我不知道​​如何在该查询中执行此操作,我已经尝试将其作为日期时间的参数添加(即使是一个mysql函数?!?)但没有快乐和许多其他不良尝试我不会进去。

如果有人可以提供帮助,我将非常感激!

2 个答案:

答案 0 :(得分:4)

MySql会自动将20130501092128转换为日期和时间字段,即使它是VARCHAR或INT,您也可以使用它:

SELECT DATE_FORMAT(exp_channel_titles.edit_date, '%d/%m/%Y %k:%i:%s')

请参阅小提琴here

答案 1 :(得分:1)

您可以使用MySQL中的DATE_FORMAT()函数更改输出格式。这是关于它的文档文章。

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

您可以将输出格式更改为您想要的任何格式,但是如果您将该数据接收到应用程序中,则修改它并将该数据返回给服务器(例如,编辑行)。请记住将其重新格式化为MySQL的有效日期。

如果您不知道如何操作,只需在查询中执行此操作:

SELECT DATE_FORMAT(cast(cast(exp_channel_titles.edit_date as char(14))
 as datetime), '%e/%m/%Y %k:%i:%s') AS Edit_Date