WeBinstruments

Инструментарий для веб-мастеров

 

на сайте на всех сайтах для веб разработчиков везде
 
 Скрипты
  PHP скрипты   
  Flash скрипты   
  Javascript скрипты   

 Софт
  Инструменты SEO   
  Разработка сайтов   
  Серверное ПО   

 Документация
  MySQL   
  PHP   
  HTML   
  Протоколы и сервисы Internet   

 Статьи
  PHP   
  MySQL   
  Сервер   
  еще...   

 Услуги и сервисы
  Домены   
  Хостинги   
  Блоки для сайта   

 Новости


 Контакты
  icq: 158325531
  email:
  все контакты: здесь




Atom все поступления
Раздел Файлы
Раздел Услуги и сервисы
Раздел Новости
Раздел Статьи
комментарии



 Партнеры


Главная / Статьи / MySQL / Преобразование даты в mysql с помощью DATE_FORMAT()


Преобразование даты в mysql с помощью DATE_FORMAT()

19.11.2008
сайт автора: http://webi.ru
публикация данной статьи разрешена только со ссылкой на сайт автора статьи

Не большой пример, как правильно преобразовать дату хранимую в mysql.
Самый быстрый и эффективный вариант.


Читать всю статью


Комментарии

RSS комментарии


16.08.2011 Михаил
Спасибо автору!
Я тоже столкнулся с проблемой преобразования даты. Хотел сделать RSS FEED статьей для моего сайта, в базе у статьей поле даты было в формате datetime но с помощью этой функций я смог преобразовать её в нужном мне формате.

Запрос через mysql select в итоге упростил мою работу и получился такой:

$query = "SELECT post_id, post_title, post_short_desc,
DATE_FORMAT(post_datetime, '%a, %e %b %Y %T') as post_datetime
FROM posts WHERE post_status='active' ORDER BY post_datetime DESC";

$res = mysql_query($query);
while ($row=mysql_fetch_array($res)) {
// Убираем из тайтла html теги и лишние пробелы
$title = strip_tags(trim($row['post_title']));
// С аноносом можно не проводить такие
// манипуляции, т.к. мы вставим его в блок CDATA
$anon = $row['post_short_body'];
$url = $row['post_id'];

//--------------------------------------------------------------------------------

$pubDate = $row['post_datetime'].' '.date('T');

// внимание здесь вопрос: как сделать так чтоб сразу с
// запроса sql вернул мне и (GMT / EST / CDT ....) что там нужно для валидности фида
// объясняю, чтоб получилось что то вроде: Tue, 16 Aug 2011 12:11:11 GMT
// сейчас она возвращает только: Tue, 16 Aug 2011 12:11:11
// а для остального я добавляю : .' '.date('T');
//--------------------------------------------------------------------------------

echo <<<END
<item>
<title>$title</title>
<description><![CDATA[$anon]]></description>
<link>http://www.castio.com/showpost.php?id=$url</link>
<guid isPermaLink="true">http://www.castio.com/showpost.php?id=$url</guid>
<pubDate>$pubDate</pubDate>
</item>

END;
}

Смотрите внимательно код выше там есть вопрос, может кто знает и поможет мне устранить эту так сказать ошибку.

У меня ещё вопрос есть, может кто поможет:
до этого я пользовался функцией

$pubDate=date("D, d M Y H:i:s T",$row['post_datetime']);

но оно выдавало ошибку вместо 2011 года выводило 1969, может я что то напутал, или не правильно её использовал. Я еще чайник в ПХП :D .



22.08.2011 Виктор
Михаил, вопросы ваши не очень понятны.
Вы хотите чтобы получилось
Tue, 16 Aug 2011 12:11:11 GMT
но у вас получается только
Tue, 16 Aug 2011 12:11:11 ?
Но отличия этих двух строк только в GMT, ну так и добавьте просто эти три буквы.

А по второму вопросу, скорее всего date не понимает такой формат, попробуйте подсунуть не конвертированный вид даты из базы



23.08.2011 Михаил
Спасибо Виктор за совет!
Я уже сделал :D! Но просто хотел знать если это было возможно сделать сразу без добавки букв "GMT".
Просто добавил .date('T'); который и возвращает мне "GMT" , "EST" или "CDT".
Спасибо всем!




18.09.2011 Артем
Уважаемые прогеры помогите с одной задачей...
мне нужно внутри постраничной навигации вывести все новости дата которых равна пришедшим методом пост данным
мне нужно запрос сформировать
у меня два запроса
SELECT COUNT(*) FROM prayers WHERE cat='$cat' AND date='2011-09-27'

и

SELECT id,title,date FROM prayers WHERE cat='$cat' date='2011-09-27' ORDER BY id LIMIT $start, $num

не работает (вместо даты должна быть переменная)



17.10.2011 виктор
Артем, в вашем втором запросе ошибка.
WHERE cat='$cat' date='2011-09-27'
перед date явно пропущено что то, скорее всего AND.



22.12.2011 Александр
Автор, спасибо большое. )



01.03.2012 Max-php
Спасибо за подсказку. После не продолжительных стараний дата приобрела удобный вид.



16.04.2012 Колян
Месяцы на русском языке:
На 5-м мускуле работает, если не ошибаюсь.

@mysql_query('SET lc_time_names = "ru_RU"');

DATE_FORMAT(date_create,'%d %b %Y %k:%i') AS date_create

Это, вроде, должно касаться и дней недели.





08.09.2012
вставил сие в свой запрос который у меня объединял данные с двух таблиц и выводил упорядоченно по убыванию исходя из даты. все сработало и дата преобразовалась. вот мой запрос кому интересно : SELECT komment.id_referendum, komment.komment, DATE_FORMAT( komment.date_kom,'%d %M %Y %T') , users.login
FROM komment, users
WHERE komment.id_user = users.id_user
AND id_referendum =1
ORDERBY date_kom DESC;
из него уже выбираю нужные данные при помощи mysql_result




16.02.2013 Димка
Легко когда нужно вытащить лишь одну дату.
А когда вытаскиваешь все поля и указываешь * вместо перечисления полей какой DATE_FORMAT вас спасет?
А если в условии нужна дата?



02.03.2013
Димка, тогда через запятую еще пишешь:

mysql_query('select *, DATE_FORMAT(date_create,'%d %b %Y %k:%i') AS date_create ...



23.04.2013 Сергей
Ребят, а подскажите пож, как мне теперь дату формата 01.01.2000 записать в базу данных через DATE_FORMAT в формате для MySQL(2000-01-01)? Или так уже не получится?



31.05.2013 Кот
Звиздец, товарищи...
Даже неполная копипаста с доков мускуля с припиской красным "не копипастить", без какого либа налета авторства...
Комменты порадовали особенно

Фейс_б"!ть_палм...



16.09.2015 Heckfy
Лучше по полной использовать функционал БД, чем писать тонны не нужного кода



11.06.2020 Krasnovosti.ru
В Delphi конструкция выглядит громоздко, но всё равно спасибо.
Пример использования в Delphi:
`from_date`=DATE_FORMAT("'+DateToStr(DateTimePicker1.Date)+'",''%Y-%m-%d'')


1 2

Добавить свой комментарий


Ваше имя(* обязательно)


Текст сообщения(* обязательно)









 
 
  запомнить

 
Copyright © 2003-2022 WeBi Constructor
Rambler's Top100