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

Форум MySQL

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

 

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

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

тема: Как сравнивать даты?
 
 автор: 1prom   (28.03.2009 в 00:44)   письмо автору
 
 

Всем драсте!

есть нерабочий запрос:
$sql = "SELECT * FROM Memory where Md > $Md and Md < $Mdfuture";

где
$Md = "2009-3-18 00:00:00";
$Mdfuture = "2009-3-19 00:00:00";

помогите исправить, пожалуйста

  Ответить  
 
 автор: ols   (28.03.2009 в 09:57)   письмо автору
 
   для: 1prom   (28.03.2009 в 00:44)
 

Если только дату без учета времени, можно поступить так:


$sql = "SELECT * FROM Memory where Md < DATA_FORMAT($Md,'%Y-%c-%d %H:%i:%S')  and Md < DATA_FORMAT($Mdfuture ,'%Y-%c-%d %H:%i:%S')";

  Ответить  
 
 автор: Trianon   (28.03.2009 в 11:03)   письмо автору
 
   для: 1prom   (28.03.2009 в 00:44)
 

Вам придется поменять формат даты в переменных.
так, чтобы месяц был представлен двумя символами ровно (и число тоже)

  Ответить  
 
 автор: 1prom   (28.03.2009 в 11:46)   письмо автору
 
   для: Trianon   (28.03.2009 в 11:03)
 

Да, я уже это сделал:
$Md = date('Y-n-j-H-i-s'); - так у мня идет запись в БД.

А запрос ничего не вибирает :((((((
$sql = "SELECT City, obl, ray, Md, theme FROM Memory GROUP BY City, obl, ray, theme where Md < DATA_FORMAT($Md,'%Y-%n-%j %H:%i:%s')";

echo"$Md"; - дает 2009-3-19 00:00:00

  Ответить  
 
 автор: Trianon   (28.03.2009 в 11:55)   письмо автору
 
   для: 1prom   (28.03.2009 в 11:46)
 

> $Md = date('Y-n-j-H-i-s'); - так у мня идет запись в БД.
неправильно идет. Должна идти так:
date('Y-m-d H-i-s')

  Ответить  
 
 автор: 1prom   (28.03.2009 в 12:13)   письмо автору
 
   для: Trianon   (28.03.2009 в 11:55)
 

при сохранении $Md = date('Y-n-j H-i-s'); - дает 2009-03-28 11:08:41

при сохранении $Md = date('Y-n-j-H-i-s'); - дает 2009-03-28 11:06:31 - разницы на выходе не вижу и запрос ничего не дает

  Ответить  
 
 автор: 1prom   (28.03.2009 в 12:16)   письмо автору
 
   для: 1prom   (28.03.2009 в 12:13)
 

ой сори, разглядел до конца...

  Ответить  
 
 автор: 1prom   (28.03.2009 в 12:43)   письмо автору
 
   для: 1prom   (28.03.2009 в 12:16)
 

$Md = date('Y-m-d H-i-s'); - echo"$Md"; дает 2009-03-28 11-35-04

$sql = "SELECT City, obl, ray, Md, theme FROM Memory GROUP BY City, obl, ray, theme where Md < DATA_FORMAT($Md,'%Y-%m-%d %H:%i:%s')";

в таблице Memory уже были ранее записи с $Md = date('Y-m-d H-i-s');

Запрос не выдает их

  Ответить  
 
 автор: Trianon   (28.03.2009 в 13:05)   письмо автору
 
   для: 1prom   (28.03.2009 в 12:43)
 

У вас ошибка в синтаксисе запроса.

$Md = date('Y-m-d H:i:s');
$sql = "
SELECT City, obl, ray, Md, theme 
  FROM Memory  
  WHERE Md < '$Md' 
  GROUP BY City, obl, ray, theme";


дата-время в формате 2009-03-28 11-35-04 в MySQL записано быть не может.
Так может быть записан только текст.
Вам придется изменить содержимое и формат поля, чтобы всё работало корректно.

  Ответить  
Rambler's Top100
вверх

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