格式化mysql中的日期字段

时间:2010-01-05 13:52:20

标签: mysql date

我有一个生日字段存储在数据库的表中。目前它显示的值为2005-10-12但我想显示为10-12-2005。我已经尝试了以下查询,但它没有显示在PHP中的所有字段。任何建议都会有所帮助。通过直接在数据库上执行此查询的方式,它是显示的,但不是在php.Thanks提前。

     SELECT DATE_FORMAT(birthdate,'%m-%d-%Y'),name FROM persons ORDER BY name DESC

1 个答案:

答案 0 :(得分:3)

它应该正确显示。例如,如果您尝试使用PHP获取该字段,则它不会显示为birthdate,而是显示为DATE_FORMAT(birthdate,'%m-%d-%Y')。这可能就是为什么它不在$row['birthdate']而在$row["DATE_FORMAT(birthdate,'%m-%d-%Y')"],如果有的话。

要将其设为birthdate,请使用as关键字对该字段使用别名:

SELECT DATE_FORMAT(birthdate,'%m-%d-%Y') as birthdate, name FROM persons ORDER BY name DESC

现在可以在$row['birthdate']找到它。

更灵活的方法是选择原始日期(最好是UNIX_TIMESTAMP格式)并用编程语言格式化日期。在PHP中,你可以这样做:

$query = "SELECT UNIX_TIMESTAMP(birthdate) as birthdate, name FROM persons ORDER BY name DESC";
$resource = mysql_query($query);

while($row = mysql_fetch_assoc($resource)) {
    echo date('m-d-Y', $row['birthdate'])." ".$row['name']."<br />";
}