2010-01-05 105 views
0

我有一个存储在数据库的表中的birthdate字段。目前它显示的值为2005-10-12,但我想显示为10-12-2005.I已尝试下面的查询,但它根本不会显示字段在PHP.Any建议将有所帮助。通过这种方式直接在数据库上执行这个查询它是显示,但不是当在php.Thanks提前。在mysql中格式化日期字段

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

回答

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 />"; 
} 
+0

非常感谢奏效。 – swathi 2010-01-05 14:02:26

+0

swathi:如果他的解决方案奏效,请将其标记为投票箭头下方复选标记的最佳答案。 ;) – 2010-01-05 14:06:34