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

Форум MySQL

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

 

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

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

тема: Извлечь записи за сегодняшний день
 
 автор: kis-kis   (31.10.2006 в 19:08)   письмо автору
 
 

С ТВ- программой не получилось...
А если проще, нужно вывести погоду только на сегодня.

Структура таблицы:

CREATE TABLE `weather` (
  `id` int(11) NOT NULL default '0',
  `day` text NOT NULL,
  `date` text NOT NULL,
  `t_morning` text NOT NULL,
  `t_evening` text NOT NULL,
  `climate` int(1) NOT NULL default '0',
  `wind` text NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Какой запрос к базе должен быть, чтобы вывод погоды был только на сегодня?
Спасибо.

   
 
 автор: cheops   (31.10.2006 в 19:18)   письмо автору
 
   для: kis-kis   (31.10.2006 в 19:08)
 

В каком формате хранится дата (date) и нельзя ли его преобразовать этот столбец в календарный тип DATETIME?

   
 
 автор: kis-kis   (31.10.2006 в 19:24)   письмо автору
 
   для: cheops   (31.10.2006 в 19:18)
 

Дату можно хранить в любом формате. В каком удобнее...
Преобразовать можно, если нужно. :-)
Есть предложения?

   
 
 автор: cheops   (31.10.2006 в 19:28)   письмо автору
 
   для: kis-kis   (31.10.2006 в 19:24)
 

Тогда можно поступить следующим образом
SELECT * FROM `weather` WHERE DATE(`date`) = DATE(NOW())

   
 
 автор: kis-kis   (31.10.2006 в 19:30)   письмо автору
 
   для: cheops   (31.10.2006 в 19:28)
 

В данном случае формат даты должен быть DATETIME?

   
 
 автор: cheops   (31.10.2006 в 19:36)   письмо автору
 
   для: kis-kis   (31.10.2006 в 19:30)
 

Да, DATETIME или DATE.

   
 
 автор: kis-kis   (31.10.2006 в 19:43)   письмо автору
 
   для: cheops   (31.10.2006 в 19:36)
 

Хорошо. Так выводит.
Но теперь, самое главное НО:

Допустим, у меня на компьютере стоит не правильная дата, следовательно скрипт будет и погоду не правильную выводить. :-(

А посмотрим в тот же самый Yandex - главная страничка с погодой - правильная или не правильная стоит дата на компьютере, а скрипт, однако, выводит все правильно, как добиться этого?
Спасибо.

   
 
 автор: cheops   (31.10.2006 в 19:46)   письмо автору
 
   для: kis-kis   (31.10.2006 в 19:43)
 

Запрос будет выполняться на сервере, где выставлена правильная дата, дата клиента (правильная она или нет) при этом не учитывается.

   
 
 автор: kis-kis   (31.10.2006 в 19:48)   письмо автору
 
   для: cheops   (31.10.2006 в 19:46)
 

Так как это реализовать?

   
 
 автор: kis-kis   (31.10.2006 в 20:06)   письмо автору
 
   для: kis-kis   (31.10.2006 в 19:48)
 

Что никто не знает?
Или никому даже не интересно?

   
 
 автор: kis-kis   (31.10.2006 в 20:12)   письмо автору
 
   для: kis-kis   (31.10.2006 в 20:06)
 

Нашел как узнать время сервера MySQL


mysql> SELECT CURRENT_DATE;


Это никак нельзя использовать?

Попробовал такой запрос:

SELECT * FROM weather WHERE date = CURRENT_DATE()


Вроде работает, только вот не пойму время сервера он выводит или моего компьютера (тестируется на локалке)?

   
 
 автор: kis-kis   (31.10.2006 в 20:30)   письмо автору
 
   для: kis-kis   (31.10.2006 в 20:12)
 

Только что проверил на хостинге.
Все работает и опирается на время сервера.
Всем огромное спасибо!

Только снова возник вопрос, а если разница со временем сервера, например, 2 часа то как это исправить?

   
 
 автор: cheops   (31.10.2006 в 23:21)   письмо автору
 
   для: kis-kis   (31.10.2006 в 20:30)
 

Для этого можно вычесть или прибавить 2 часа
SELECT * FROM weather WHERE date = CURRENT_DATE() - INTERVAL 2 HOUR

   
Rambler's Top100
вверх

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