我有一个生日字段存储在数据库的表中。目前它显示的值为2005-10-12但我想显示为10-12-2005。我已经尝试了以下查询,但它没有显示在PHP中的所有字段。任何建议都会有所帮助。通过直接在数据库上执行此查询的方式,它是显示的,但不是在php.Thanks提前。
SELECT DATE_FORMAT(birthdate,'%m-%d-%Y'),name FROM persons ORDER BY name DESC
答案 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 />";
}