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

Форум MySQL

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

 

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

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

тема: сопоставить даты..
 
 автор: nickson   (08.11.2006 в 00:26)   письмо автору
 
 

Есть поле в таблице БД, которое содержит значение даты и времени. А нужно выьрать строки только те, в которых в значении поля даты есть сегодняшняя дата, но не время. Как это можно сделать?

   
 
 автор: sd607   (08.11.2006 в 01:48)   письмо автору
 
   для: nickson   (08.11.2006 в 00:26)
 

Попробуйте вот это, как вариант:


select * from table where DATE_FORMAT(date_row,'%Y-%m-%d')=CURDATE();


date_row - поле типа DATETIME в Вашей таблице.

   
 
 автор: nickson   (08.11.2006 в 12:16)   письмо автору
 
   для: sd607   (08.11.2006 в 01:48)
 

А если, допустим, нужно вывести все элементы за последнюю неделю или месяц?

   
 
 автор: cheops   (08.11.2006 в 12:50)   письмо автору
 
   для: nickson   (08.11.2006 в 12:16)
 

За последний месяц можно выбрать даты следующим образом
SELECT * FROM tbl 
WHERE YEAR(date_row) = YEAR(NOW()) AND MONTH(date_row) = MONTH(date_row);


Неделя с какого дня начинается? И какая версия MySQL вам доступна?

   
 
 автор: nickson   (08.11.2006 в 13:03)   письмо автору
 
   для: cheops   (08.11.2006 в 12:50)
 

Неделя начинается с понедельника, а версия 4

   
 
 автор: nickson   (08.11.2006 в 19:39)   письмо автору
 
   для: nickson   (08.11.2006 в 13:03)
 

Так, как тогда за неделю вывести?

   
 
 автор: cheops   (08.11.2006 в 23:22)   письмо автору
 
   для: nickson   (08.11.2006 в 19:39)
 

Тогда разумнее воспользоваться решением sd607
select * from table where DATE_FORMAT(date_row,'%Y-%u')=DATE_FORMAT(NOW(),'%Y-%u');

   
 
 автор: cheops   (08.11.2006 в 12:47)   письмо автору
 
   для: nickson   (08.11.2006 в 00:26)
 

Можно также воспользоваться запросом
SELECT * FROM tbl WHERE DATE(date_row)=DATE(NOW());

   
 
 автор: d-111   (08.11.2006 в 14:21)   письмо автору
 
   для: cheops   (08.11.2006 в 12:47)
 

а если нужно старше одно дня?

   
 
 автор: cheops   (08.11.2006 в 23:23)   письмо автору
 
   для: d-111   (08.11.2006 в 14:21)
 

Мало информации о том, что хотите сделать... Что требуется?

   
Rambler's Top100
вверх

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