Дата от datetime поле, mysql 4.0.20-log

4 отговора 430 прегледа
#1

Дата от datetime поле, mysql 4.0.20-log

Хех, снервих се вече затова ако някой има идея какъв точно е проблема, да помага моля :(
Значи имаме някакъв mysql сървър някъде си, Select version() казва : mysql 4.0.20-log. Имам таблица с поле Starts_At - datetime и искам да взема всички записи, с днешна дата. Сиреч задачата се свежда до това да взема датата от datetime полето. Лесно, ама:
1. Date(datetime) - няма такова чудо. Това добре- според докуметацията на Mysql 5.0.0-alpha - "DATE() is available as of MySQL 4.1.1. "
2. Пробвам с:
SELECT *
FROM Table
WHERE DATE_FORMAT( Starts_At, '%Y-%m-%d ' ) = CURDATE( );
MySQL 4.1.1 - чудесно, съгласява се
MySQL 4.0.20 - не дава грешка, но не връща и резултат, записи с днешна дата има
само: SELECT DATE_FORMAT( Starts_At, '%Y-%m-%d ' ) FROM Table - работи
само: SELECT CURDATE() - работи
3. Пробвах да си взема датата със DAY(datetime),MONTH(datetime),YEAR(datetime), но DAY() отново е след MySQL 4.1.1...

Е не знам вече какво да направя, ако може някой да помогне ще му бъда много благодарна :)

Отговор
в отговор на _danitu #2

Re: Ама ти ЗНАЕШ отговора!!!

Само деня от датата можеш да го "вземеш" с
DATE_FORMAT( Starts_At, '%d ' ) !!!!!!!


Между другото


WHERE DATE_FORMAT( Starts_At, '%Y-%m-%d ' ) = CURDATE( );

Е голяма грешка.

Защото
WHERE DATE_FORMAT( Starts_At ... ) = ...

няма да използва индекс.

Тъй, че решението ти е:

SELECT ... WHERE Starts_At > CURDATE();

Ако имаш стойности след днешния ден тогава

... WHERE Starts_At BETWEEN CURDATE() AND CURDATE() + INTERVAL 1 DAY;



salle.online.bg/sig<P ID=&quot;edit&quot;><FONT class=&quot;small&quot;><EM>Редактирано от salle на 25.07.04 22:22.</em></font></p>

Редактирано от salle на

Отговор
в отговор на salle #3

Re: Ама ти ЗНАЕШ отговора!!!

SELECT *
FROM Table
WHERE Starts_At > CURDATE( )

10x:)))

Отговор
в отговор на _danitu #4

Re: Ама ти ЗНАЕШ отговора!!!

nai pravilno e:


select * from table where cast(Start_at as date)=curdate()

taka moje da se izpolzva i s drugi konkretni dati osven dneshnata ;)

Отговор
в отговор на svetlionik #5

Re: Ех да му се не види ...

Не стига, че отговаряш на нещо писано преди 2 години ами и не четеш.

Твоето "правилно" предложение няма да използва индкес а винаги ще претърсва цялата таблица.

salle.online.bg/sig
Отговор