2011-01-26 23 views

回答

6

不要改变这些值的方式保存。改变他们的方式输出

TIME_FORMAT()

在你的情况,这将显示一个TIME场为10:16:08 PM

SELECT TIME_FORMAT(timefield, "%l:%i:%s %p") AS date_formatted; 
+0

如果我这样做,将获取的记录的方式是不同的SELECT DATE_FORMAT(DATE,“%Y-%间 - %d%H:%I:% ($ row = mysql_fetch_assoc($ res)){ echo $ row ['DATE']; } – 2011-01-26 14:34:51

+0

@Ieyasu好点。我修改了示例查询。如果你使用`AS`给它一个别名,你就可以使用`echo $ row [“date_formatted”];` – 2011-01-26 14:36:50

1

你应该可以保存日期/原始格式,这在MySQL是24小时格式的时间值。你可以改变他们如何与

SELECT DATE_FORMAT(somedatetimefield, 'format string here') 
FROM table 

在格式字符串选项定义here

如果做手工,每查询是一个问题检索,你总是可以创建一个视图来为你做它自动。

1

你真的不应该改变数据在MySQL中的保存方式。相反,你只应该以不同的方式呈现。您可以使用PHP的date函数以任何您想要的方式格式化日期。这是一个巨大的优势,因为您正在分离数据的保存方式以及数据的呈现方式。

1

使用DATEFORMAT可以保存/提取你怎么想(像PHP date()的语法)的日期

1

就像佩卡说:不要改变这些值是如何保存的方式。

您还可以轻松地在PHP中使用date()

date("hh:ii:ss") 该拿出你在你的例子使用的格式处理这个问题。 (这是12小时格式和前导零。)