|
|
|
| грждане, подскажите, как можно отсортировать выборку строк из базы по дате?
Дата имеет тип DATE. | |
|
|
|
|
|
|
|
для: Zilog
(20.04.2008 в 01:27)
| | Сортировать можно также как и обычные данные - в прямом порядке
SELECT * FROM tbl
ORDER BY putdate
|
в обратном -
SELECT * FROM tbl
ORDER BY putdate DESC
|
где putdate - поле типа DATE | |
|
|
|
|
|
|
|
для: cheops
(20.04.2008 в 01:43)
| | Спасибо, Египтянин!
Так и делаю. Видимо есть косяки - буду искать.
ВОпрос, по теме дат: скажем, на сайте я редактирую эту дату в формате "дд.мм.гг." - получается, что при выводе надо её отформатить, и ещё раз при записи в БД, так? | |
|
|
|
|
|
|
|
для: Zilog
(20.04.2008 в 01:53)
| | Так. У вас же формат представления даты на сайте отличается от формата в котором хранится в БД.
Лучше дату хранить в БД не в виде DATE, а в виде TIMESTAMP, так преобразовывать будет проще. | |
|
|
|
|
|
|
|
для: Хулиган
(20.04.2008 в 07:02)
| | Хулиган, спасибо, а чем проще? Не один ли хрен - сначала конвертить для сайта, а потом обратно для юзера? В чём простота TIMESTAMP? | |
|
|
|
|
|
|
|
для: Zilog
(20.04.2008 в 13:04)
| | Нет, не один, а два хрена:
если в БД дата хранится в виде DATE (YYYY-MM-DD HH:MM:SS), а на сайте нужно DD.MM.YY, то придётся сначала преобразовать из YYYY-MM-DD HH:MM:SS в число секунд (TIMESTAMP) ф-цией strtotime/mktime, а затем это число преобразовать ф-цией date ("d.m.Y", timestamp). Это два преобразования. Если в БД TIMESTAMP, то первое преобразование при помощи strtotime/mktime не нужно.
Точно также и обратное преобразование с сайта в БД.
Кроме того если время в БД храниться в TIMESTAMP, то операции выборки, сортировки выполняются быстрее, чем с форматом DATE. | |
|
|
|
|
|
|
|
для: Хулиган
(20.04.2008 в 23:34)
| | Прежде чем давать какие-то советы людям нужно разобраться самому: DATE это YYYY-MM-DD, TIMESTAMP это не unix timestamp, как ты думаешь, а как раз YYYY-MM-DD HH:MM:SS.
Так что Zilog делает всё верно.
> получается, что при выводе надо её отформатить, и ещё раз при записи в БД, так?
Да. Можно воспользовать MySQL-функцией DATE_FORMAT:
SELECT DATE_FORMAT(`date`, '%e.%c.%Y') FROM `tbl` ...
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format | |
|
|
|
|
|
|
|
для: Atheist
(20.04.2008 в 23:51)
| | >Да. Можно воспользовать MySQL-функцией DATE_FORMAT:
В любом случае это два преобразования. Вместо mktime используется DATE_FORMAT.
Прежде чем писать, подумайте. | |
|
|
|
|
|
|
|
для: Хулиган
(21.04.2008 в 00:07)
| | > Прежде чем писать, подумайте
Странное предложение для меня. Я ни в чем тут не ошибался. | |
|
|
|