mysql查询 - 输出格式化日期?

new*_*ame 1 mysql date-format

在我的表中,日期存储如下:2011-03-03T13:30:00

我正在尝试输出这样的日期:2011年3月3日下午1:30

我宁愿把它用在查询中,而不是使用php来格式化它,但我在做这件事时遇到了一些困难.尝试DATE_FORMAT的各种迭代,但它没有给我我想要的东西,也许是因为它的存储方式?

Álv*_*lez 9

在处理日期时,您基本上可能需要执行两种不同的操作:日期到字符串,反之亦然.您可以使用的功能是DATE_FORMAT()STR_TO_DATE().完整的参考资料可以在手册中找到.

用法示例:

SELECT
    DATE_FORMAT(CURRENT_TIMESTAMP, '%d/%m/%Y %H:%i:%s'),
    STR_TO_DATE('31/12/2001 23:55:00', '%d/%m/%Y %H:%i:%s')
Run Code Online (Sandbox Code Playgroud)

如果您的日期不是真实日期而是字符串,则需要转换两次:从字符串到日期,再次从日期到字符串:

SELECT
    STR_TO_DATE('2011-03-03T13:30:00', '%Y-%m-%dT%H:%i:%s'),
    DATE_FORMAT(STR_TO_DATE('2011-03-03T13:30:00', '%Y-%m-%dT%H:%i:%s'), '%M %e, %Y %l:%i %p')
Run Code Online (Sandbox Code Playgroud)