Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: сортировка по дате

Сообщения:  [1-9] 

 
 автор: Atheist   (21.04.2008 в 01:48)   письмо автору
 
   для: Хулиган   (21.04.2008 в 00:07)
 

> Прежде чем писать, подумайте
Странное предложение для меня. Я ни в чем тут не ошибался.

   
 
 автор: Хулиган   (21.04.2008 в 00:07)   письмо автору
 
   для: Atheist   (20.04.2008 в 23:51)
 

>Да. Можно воспользовать MySQL-функцией DATE_FORMAT:

В любом случае это два преобразования. Вместо mktime используется DATE_FORMAT.

Прежде чем писать, подумайте.

   
 
 автор: Atheist   (20.04.2008 в 23:51)   письмо автору
 
   для: Хулиган   (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

   
 
 автор: Хулиган   (20.04.2008 в 23:34)   письмо автору
 
   для: 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.

   
 
 автор: Zilog   (20.04.2008 в 13:04)   письмо автору
 
   для: Хулиган   (20.04.2008 в 07:02)
 

Хулиган, спасибо, а чем проще? Не один ли хрен - сначала конвертить для сайта, а потом обратно для юзера? В чём простота TIMESTAMP?

   
 
 автор: Хулиган   (20.04.2008 в 07:02)   письмо автору
 
   для: Zilog   (20.04.2008 в 01:53)
 

Так. У вас же формат представления даты на сайте отличается от формата в котором хранится в БД.

Лучше дату хранить в БД не в виде DATE, а в виде TIMESTAMP, так преобразовывать будет проще.

   
 
 автор: Zilog   (20.04.2008 в 01:53)   письмо автору
 
   для: cheops   (20.04.2008 в 01:43)
 

Спасибо, Египтянин!

Так и делаю. Видимо есть косяки - буду искать.

ВОпрос, по теме дат: скажем, на сайте я редактирую эту дату в формате "дд.мм.гг." - получается, что при выводе надо её отформатить, и ещё раз при записи в БД, так?

   
 
 автор: cheops   (20.04.2008 в 01:43)   письмо автору
 
   для: Zilog   (20.04.2008 в 01:27)
 

Сортировать можно также как и обычные данные - в прямом порядке
SELECT * FROM tbl
ORDER BY putdate

в обратном -
SELECT * FROM tbl
ORDER BY putdate DESC

где putdate - поле типа DATE

   
 
 автор: Zilog   (20.04.2008 в 01:27)   письмо автору
 
 

грждане, подскажите, как можно отсортировать выборку строк из базы по дате?
Дата имеет тип DATE.

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования