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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Перевод даты из datetime в RFC-822
 
 автор: mishaMC   (06.09.2006 в 13:29)   письмо автору
 
 

Дата хранится в формате datetime, мне же нужно на выход получить дату в формате RFC-822 (Thu, 14 Oct 2004 15:53:00 +0300).

   
 
 автор: targa   (06.09.2006 в 13:32)   письмо автору
 
   для: mishaMC   (06.09.2006 в 13:29)
 

RTFM по мускульной функции DATE_FORMAT

   
 
 автор: mishaMC   (06.09.2006 в 14:35)   письмо автору
 
   для: targa   (06.09.2006 в 13:32)
 

Пробую в phpMyAdmine запрос:

SELECT id_news, preambula, text, date_format('date_create','%a, %d %b %Y %H:%i:%s') from news WHERE `show`='yes' ORDER BY date_create DESC LIMIT 5

Но в результатах вывода date_create выводит NULL. Без конструкции date_format вывод даты идет нормально. Может быть я где-нибудь ошибся?

   
 
 автор: cheops   (06.09.2006 в 14:39)   письмо автору
 
   для: mishaMC   (06.09.2006 в 14:35)
 

Для имён столбцов и таблиц следует использовать обратные кавычки, вместо одинарных
SELECT id_news, preambula, text, date_format(`date_create`,'%a, %d %b %Y %H:%i:%s') from news WHERE `show`='yes' ORDER BY date_create DESC LIMIT 5

   
 
 автор: cheops   (06.09.2006 в 14:29)   письмо автору
 
   для: mishaMC   (06.09.2006 в 13:29)
 

Для этого следует воспользоваться функцией DATE_FORMAT()
SELECT DATE_FORMAT(puttime, '%a, %d %b %Y '%H:%i:%s +0300') FROM tbl

где putttime - имя столбца с временем в формате DATETIME.

   
 
 автор: mishaMC   (06.09.2006 в 14:39)   письмо автору
 
   для: cheops   (06.09.2006 в 14:29)
 

Спасибо большое. Буду теперь пользоваться такой полезной функцией.

Вот готовый запрос, может кому пригодится...

SELECT id_news, preambula, text, DATE_FORMAT(date_create, '%a, %d %b %Y %H:%i:%s +0300') from news WHERE `show`='yes' ORDER BY date_create DESC LIMIT 5

   
 
 автор: mishaMC   (06.09.2006 в 14:50)   письмо автору
 
   для: cheops   (06.09.2006 в 14:29)
 

Гм... Как выяснилось рано я обрадовался. Я результат запроса обрабатываю при помощи функции mysql_fetch_array().

И он элемент в массиве date_create выдает ... пустым. В чем загвоздка?
(все остальные элементы на месте).

   
 
 автор: cheops   (06.09.2006 в 14:59)   письмо автору
 
   для: mishaMC   (06.09.2006 в 14:50)
 

Загвоздка в том, что такое поля больше нет, есть поле с названием date_format(`date_create`,'%a, %d %b %Y %H:%i:%s') - им неудобно пользоваться, поэтому прибегают к псевдонимам, которые назначают при помощи оператора AS
SELECT id_news, preambula, text, date_format(`date_create`,'%a, %d %b %Y %H:%i:%s') AS date_print from news WHERE `show`='yes' ORDER BY date_create DESC LIMIT 5

Теперь имя столбца date_print, date_create лучше не назначать, так как он у вас в конструкции ORDER BY - сортироваться не правльно будет.

   
 
 автор: mishaMC   (06.09.2006 в 15:36)   письмо автору
 
   для: cheops   (06.09.2006 в 14:59)
 

Спасибо, все работает.

   
Rambler's Top100
вверх

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