|
Страници по тази тема: 1 | 2 | (покажи всички)
Тема
|
search by date
|
|
Автор | lvo (Нерегистриран) |
Публикувано | 04.08.03 15:30 |
|
Imam 4 poleta, event(varchar), year(int), mont(2) i day(2)
zapisite predstavliavat slednoto neshto:
'hello world', '2002', '2', '21'
triabva mi query s koeto moga da izvadia event predi/sled opredelena data.
| |
Тема
|
Защо са ти 3 полета за дата?
[re: lvo]
|
|
Автор | bira_more (Нерегистриран) |
Публикувано | 04.08.03 16:44 |
|
Ако е едно - нямаш проблем ама 3?
Сигурно и сега има някакъв чалъм да направиш ненужно сложна заявка която първо да направи едно поле от трите пък после да сравнява, ама е малко над нивото ми :)))
| |
Тема
|
Re: search by date
[re: lvo]
|
|
Автор |
Dakota (erotoman) |
Публикувано | 04.08.03 17:41 |
|
Използвай едно DATE поле, вместо 3.
Иначе винаги можеш да използваш DATE_FORMAT(CONCAT(year,'-',mont,'-',day), '%Y-%m-%d'), за да получиш желаното поле, но е тъпо така.
Everything louder than everything else...
| |
|
Представи си, че често ти трябват заявки в стил
... WHERE month = 3;
| |
Тема
|
Re: search by date
[re: Dakota]
|
|
Автор | waflata (Нерегистриран) |
Публикувано | 05.08.03 14:27 |
|
ами добре де, защо не ги конверирасх само ВЕДНЪЖ вав дата, и после пишеш:
-----------------------------------------
SELECT event, event_date
FROM events
WHERE YEAR(event_date) = YEAR(NOW()) AND MONTH(event_date) = 3
ORDER BY event_date DESC
----------------------------------------
и така става, поне за mySQL трябва да бачка. Идеята е, че е добре да слагаш и годината защото ако имаш "events" от 2 години, ще стане зле.
| |
Тема
|
Сигурно си прав ама ...
[re: salle]
|
|
Автор | bira_more (Нерегистриран) |
Публикувано | 05.08.03 14:30 |
|
ако ми трябва
WHERE month = 3
сигурно ще ми свърши работа и
WHERE mydate like '200303%'
Мисълта ми е че ако ми трябва нещо за даден месец то обикновено е от дадена година*
Пък ако ти трябват и двете често - нарушаваш правилата и си правиш 4 полета :)
Де да знам - не ми е трябвало само месец (без година) не съм ровил.
________
* А съм сигурен цхе имаше чалъм да се изберат датите само по месец ама пак беше нещо през крив макарон:)
| |
Тема
|
Re: search by date
[re: waflata]
|
|
Автор |
salle (член) |
Публикувано | 05.08.03 18:11 |
|
Защото фафла това е бавно.
WHERE YEAR(event_date) = YEAR(NOW()) AND MONTH(event_date) = 3
Не може да се е използва никакъв индекс за да се оптимизира тази заявка.
Докато същото нещо написано по друг начин може:
WHERE event_date BETWEEN DATE_FORMAT(CURDATE(), "%Y-03-01") AND DATE_FORMAT(CURDATE(), "%Y-04-01");
| |
Тема
|
Re: Сигурно си прав ама ...
[re: bira_more]
|
|
Автор |
salle (член) |
Публикувано | 05.08.03 18:15 |
|
WHERE mydate like '200303%'
Сигурно няма да ти свърши работа в общия случай!
Първо не е много хитро да конвертираш mydqte до стринг за да работи LIKE и второ защото така разчиташ на специфичен формат който пък за момемнта е такъв САМО за TIMESTAMP и то преди 4.1
В 4.1 заради съвместимост и стандартите TIMESTAMP връща същий формат като DATETIME по подразбиране.
Изобщо навика да работиш с дати и времена като със стрингове не е много читав. Ама никак.
| |
Тема
|
Re: search by date
[re: salle]
|
|
Автор | Waflata (Нерегистриран) |
Публикувано | 06.08.03 11:23 |
|
Ммдаа, имаш право. По-добре е.
| |
Тема
|
Mersi za TIMESTAMP инфото
[re: salle]
|
|
Автор | bira_more (Нерегистриран) |
Публикувано | 06.08.03 15:47 |
|
По принцип като работя с дати часове и т.н. ползвам едно единствено нещо - double аз си имам грижа за конверсиите.
Въобще не смея да разчитам на някакъв стандарт - още от време оно съм брал ядове с BDE и например 1999 г. и BDE то е до там види ли си г. ....
От там на сетне аз си знам как да си подредя година месец ден а и съм си направил достатъчно рутини за конверсии, дисплей и т.н.
Зная че не е най-коректното решение, но BD са една част от дейността ми а основното са приложения които от време на време ползват BD
А ако има промени във формата на timestamp - май ме чакат ядове в бъдеще ;)
И никога нямам време да реша един проблем като хората в болшинството случаи все намирам време най-много да го заобиколя :(((
| |
|
Страници по тази тема: 1 | 2 | (покажи всички)
|
|
|