У меня есть поле даты рождения, хранящееся в таблице в базе данных. В настоящее время он отображает значения как 2005-10-12, но я хотел отображать как 10-12-2005. Я пробовал следующий запрос, но он не отображает поле вообще в PHP. Все предложения будут полезны. Как этот запрос, когда он выполняется непосредственно в базе данных, он рассылается, но не в php.Thanks заранее.
SELECT DATE_FORMAT(birthdate,'%m-%d-%Y'),name FROM persons ORDER BY name DESC
Он должен отображаться правильно. Если вы пытаетесь получить поле в 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 />";
}