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

Форум PHP

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

 

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

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

тема: Сравнить две даты
 
 автор: JIEXA   (17.04.2005 в 17:39)   письмо автору
 
 

Как сравнить две даты, сохраненные в формате "кол-во секунд с эпохи UNIX", так чтобы если
совпадает число, месяц и год, то возвращается true, тоесть не обращая внимание на часы, минуты, секунды.
Только сравнивать это надо в запросе.

# в пременной $mydate содержится дата ("кол-во секунд с эпохи UNIX") 
# news_datestamp равна $mydate если сравнивать по чч.мм.гггг
# а время у них разное, как сделать, чтобы сравнивалась только
# дата, необращая внимание на время?
sql_query("select * from tbl where news_datestamp=$mydate");

   
 
 автор: cheops   (17.04.2005 в 22:32)   письмо автору
 
   для: JIEXA   (17.04.2005 в 17:39)
 

Следует организовать запрос примерно следующим образом.
"SELECT * FROM tbl 
WHERE YEAR(news_datestamp) = ".date("Y",$mydate)." AND
      MONTH(news_datestamp) = ".date("n",$mydate)." AND
      DAYOFMONTH(news_datestamp) = ".date("j",$mydate)

   
 
 автор: JIEXA   (18.04.2005 в 19:54)   письмо автору
 
   для: cheops   (17.04.2005 в 22:32)
 

Не получается, не одного ряда не находит :(.
Я как вы писали пробывал и так:

                        "SELECT * from ".PREFIX."news
                         WHERE DATE_FORMAT(news_datestamp,'%e.%c.%Y')='$mydate'"

заранее конвертировав переменную $mydate в формат ч.м.гггг
Что делать?

   
 
 автор: cheops   (18.04.2005 в 23:11)   письмо автору
 
   для: JIEXA   (18.04.2005 в 19:54)
 

А вы не можете кусочек базы данных приложить, и указать какие строки следует извлечь? Вслепую сложно подобрать подходящий запрос...

   
 
 автор: JIEXA   (18.04.2005 в 23:13)   письмо автору
 
   для: JIEXA   (18.04.2005 в 19:54)
 

Вообщем я не выдержал и изминил тип таблицы на DATETIME, так теперь работает, но оч. долго. Тоесть вот это:

WHERE DATE_FORMAT(news_datestamp,'%e.%c.%Y')='$mydate'

замедляет загрузку на долго, и главное у меня стоит счётчик времени загрузки страницы, он показывает 0,1573 сек - это конечно много, обычно у меня ~0.0700
но такое впечатление что страница секунды две-три грузится. Что это DATE_FORMAT рессурса емкая? неужели перебрать 800 записей в бд так долго?
P.S. cheops я написал это сообщение, до того как увиедел ваше. Я думую уже кусок бд приводить не обезательно?

   
 
 автор: cheops   (18.04.2005 в 23:26)   письмо автору
 
   для: JIEXA   (18.04.2005 в 23:13)
 

Лучше идти по пути преобразования $mydate под формат базы данных, так как эту переменную нужно изменить только один раз, а DATE_FORMAT изменяет каждую запись, поэтому и долго.

   
 
 автор: JIEXA   (18.04.2005 в 23:28)   письмо автору
 
   для: cheops   (18.04.2005 в 23:26)
 

спасибо cheops!

   
Rambler's Top100
вверх

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