Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > MONTH, YEAR, а какже с числом DAY я так понял нету


Автор: Step 21.5.2006, 22:33
Код

select YEAR(NOW()) 
select MONTH(NOW())

это работает
Код

SELECT * FROM `123` where 1=1 and YEAR(datetime)=YEAR(NOW()) and MONTH(datetime)=MONTH(NOW()) and DAY(datetime)=DAY(NOW())

а вот это нет

Очень прошу не предлагать альтернотивные решения, а подсказать чем заменить day 

Автор: skyboy 22.5.2006, 00:10
Странно... А что выдаёт запрос 
Код

SELECT day(now())
?
Аналог - EXTRACT(DAY from datetime)
О! А как твоя версия сервера мирится с тем, что ты используешь в качестве имени столбца зарезервированное слово "datetime"? Проблема не может заключаться в этом? 

Автор: jsse 22.5.2006, 01:02
Ну если это что-то изменит

Код

SELECT DATE_FORMAT(NOW(), "%d");
 

Автор: Step 22.5.2006, 01:14
Код

SELECT day(now())

не работает
а вот hour работает


Код

SELECT DATE_FORMAT(NOW(), "%d");


с этим проблем нету

Добавлено @ 01:15 
Цитата(skyboy @  22.5.2006,  00:10 Найти цитируемый пост)
А как твоя версия сервера мирится с тем, что ты используешь в качестве имени столбца зарезервированное слово "datetime"?

хороший вопрос 

Автор: igorold 22.5.2006, 07:36
Попробуй:
Код

SELECT DAYOFMONTH(now());
 

есть еще функции:
Код

DAYNAME
DAYOFWEEK
DAYOFYEAR
 
 smile  

Автор: Ignat 22.5.2006, 09:19
Step,  а не проще вот это:
Цитата(Step @  21.5.2006,  23:33 Найти цитируемый пост)
YEAR(datetime)=YEAR(NOW()) and MONTH(datetime)=MONTH(NOW()) and DAY(datetime)=DAY(NOW())


Заменить на:

Код

DATE(`datetime`)=CURDATE()

 

Автор: skyboy 22.5.2006, 09:20
Если верить хелпу,функции dayofmonth и day - это синонимы(видимо, вызов одной и той же функции). Однако вполне может быть, что это было нетак в более ранних версиях... 
Step, версия-то какая? 

Автор: useless 22.5.2006, 09:36
Какое сообщение об ошибке выдаёт запрос?  

Автор: igorold 22.5.2006, 11:25
Цитата(skyboy @ 22.5.2006,  09:20)
Если верить хелпу,функции dayofmonth и day - это синонимы(видимо, вызов одной и той же функции). Однако вполне может быть, что это было нетак в более ранних версиях... 
Step, версия-то какая?

у меня этот запрос проходит:
Код

SELECT DAYOFMONTH(now());

а этот нет:
Код

SELECT DAY(now());

с ошибкой:
Код

ERROR 1064: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '(now())' at line 1

а что они синонимы я в книге не увидел ...  

Автор: Ignat 22.5.2006, 12:02
Цитата(igorold @  22.5.2006,  12:25 Найти цитируемый пост)
а что они синонимы я в книге не увидел ...  


Цитата(dev.mysql.com)

DAY() is a synonym for DAYOFMONTH(). It is available as of MySQL 4.1.1.

 

Автор: igorold 22.5.2006, 14:12
у меня версия
Код

mysql  Ver 12.22 Distrib 4.0.20, for mandrake-linux-gnu (i586)

и я вам верю, что это синонимы ... у вас ...  smile   

Автор: Step 23.5.2006, 15:46
примного благодарен smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)