форматирование поля даты в mysql - PullRequest
0 голосов
/ 05 января 2010

У меня есть поле даты рождения, хранящееся в таблице в базе данных. В настоящее время оно отображает значения как 2005-10-12, но я хотел отобразить как 10-12-2005. Я пробовал следующий запрос, но он не отображает поле вообще в PHP. Любые предложения будут полезны. По тому, как этот запрос при выполнении непосредственно в базе данных он отображается, но не в php. Спасибо заранее.

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

1 Ответ

3 голосов
/ 05 января 2010

Должно отображаться правильно. Например, если вы пытаетесь получить поле в 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 />";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...