PHP/MySQL查询中的日期格式化

PHP/MySQL查询中的日期格式化,php,mysql,json,Php,Mysql,Json,我有一个使用MySQL和PDO的PHP/JSON脚本,数据现在运行良好。 代码: 我将如何使用DATE_格式使我的字段开始和结束都存储为DATETIME,使其显示如下: 2013年8月16日00:00:00 等等 它正确地显示了数据,但我不太确定如何使DATE_格式工作。在查询中将正确的格式字符串传递到DATE_格式: SELECT *, DATE_FORMAT(start, '%d/%m/%Y %H:%i:%s') AS the_date FROM mystation

我有一个使用MySQL和PDO的PHP/JSON脚本,数据现在运行良好。 代码:

我将如何使用DATE_格式使我的字段开始和结束都存储为DATETIME,使其显示如下: 2013年8月16日00:00:00

等等


它正确地显示了数据,但我不太确定如何使DATE_格式工作。

在查询中将正确的格式字符串传递到DATE_格式:

SELECT 
    *, 
    DATE_FORMAT(start, '%d/%m/%Y %H:%i:%s') AS the_date 
FROM mystation
然后,当您在行中循环时,格式化的日期将在_date列中可用

以下由Marty McVry建议的格式字符串也适用:

DATE_FORMAT(start, '%d/%m/%Y %T')

参考资料:

在下面的解决方案旁边,这是正确的:当处理数据时——在您的情况下,使用REST-API或其他方式传递日期时——您通常不希望应用格式化。您应该返回尽可能原始的数据,以允许最终处理应用程序根据需要格式化数据

使用通用格式“2013-08-14 20:45:00 GMT+2”“年-月-日-小时:分钟:秒时区”,这样每个客户端都能够以适当的方式重构检索到的数据

数据应该在呈现给用户的那一刻就进行转换,而不是更早


在日期的原始数据格式上,您可以执行相等的比较或排序操作,而不会出错。

正确显示数据是什么意思?您遇到的问题是什么?你看到这个参考资料了吗?DATE_FORMATstart,“%d/%m/%Y 00:00:00”能帮你解决问题吗?我试图让字段中的所有数据开始显示为2013年8月16日00:00:00。作为旁注,你也可以使用%T代替%H:%I:%s谢谢,并将其添加到答案中。如果我的答案有错误,我想知道,@downvoter+1作为MySQL文档的参考,以及以指定格式返回字符串的示例。但是,最好给出一个示例,说明如何在结果集中为该列指定别名。正如start_dmytThank@spencer7593所说,我不太确定这种方法是否真的能让人避免做错任何事。处理DATE和DATETIME列可能很复杂,而且您描述的方法肯定有好处。但您确定这是处理数据的唯一适当方法吗?也许你应该向MySQL建议不要使用DATE_FORMAT函数,以帮助防止人们做错事情。我试图让字段中的所有行开始使用类似于2013年8月16日00:00的格式:00@spencer7593这样做将使不同应用程序之间的交互更加容易。不,如果要立即显示数据,则在查询中格式化数据不会有问题。但是,当将数据填充到外部应用程序时,与国家/时区相关的信息总是不好的。每个参加过国际项目的人,不同的时区,不同的小数点分隔符,字符串中不同的特殊字符,都知道我的意思。既然在非常本地化的应用程序中以原始格式处理数据并不困难,为什么不这样做呢?
DATE_FORMAT(start, '%d/%m/%Y %T')