Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Вниз

набор данных в пределах текущего года   Найти похожие ветки 

 
erika ©   (2005-10-17 17:49) [0]

Здравствуйте!
Подскажите пожалуйста.
Пишу запрос, который должен отображать документы только текущего года

SELECT ZAJAVKA.NOMBER, ZAJAVKA.DATA, ZAJAVKA.MANAGER, ZAJAVKA.SR
FROM ZAJAVKA
where (ZAJAVKA.DATA=Year())

была попытка

..
where (ZAJAVKA.DATA=Year(now))

как правильно записть, что дата должна находиться в пределах текущего года (если это возможно сделать с помощью команды)

Заранее спасибо.
ЗЫ. Извините если  вопрос  покажется  глупым


 
Desdechado ©   (2005-10-17 18:27) [1]

функция EXTRACT


 
erika ©   (2005-10-17 18:31) [2]

нашла
так  работает

SELECT ZAJAVKA.NOMBER, ZAJAVKA.data, ZAJAVKA.MANAGER, ZAJAVKA.SR
FROM ZAJAVKA
where EXTRACT(YEAR FROM ZAJAVKA.data) = "2005"

а с NOW() почему - то не КОЧЕТ...


 
Desdechado ©   (2005-10-17 18:47) [3]

текст запроса-нехочухи


 
erika ©   (2005-10-18 08:12) [4]


> текст запроса-нехочухи


SELECT ZAJAVKA.DATA, ZAJAVKA.IDZ
FROM ZAJAVKA
where EXTRACT(YEAR FROM ZAJAVKA.data) = now

тоже  не  кочет, пишет

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
NOW.
At line 3, column 41.


 
erika ©   (2005-10-18 08:18) [5]

я  конечно  помимаю,   что  можно  черезе  передачу  параметров, но  очень  уж кочется  иметь  готовое  предстваление


 
sniknik ©   (2005-10-18 08:40) [6]

erika ©   (18.10.05 08:12) [4]
насколько понимаю из now тоже необходимо выделить год иначе сравнение безсмыссленно.
вроде так
...
where EXTRACT(YEAR FROM ZAJAVKA.data) = EXTRACT(YEAR FROM "NOW")

erika ©   (18.10.05 08:18) [5]
> я  конечно  помимаю,   что  можно  черезе  передачу  параметров
через параметры будет более правильно, или если можно функциями выделить начало и конец года.
и выглядеть будет
SELECT ZAJAVKA.DATA, ZAJAVKA.IDZ
FROM ZAJAVKA
where ZAJAVKA.data BETWEEN :StartDate AND :EndDate

а вычислением по полю ты фактически отключаеш индекс (если есть), и делаеш полное сканирование таблици, и тормоза естественно.


 
erika ©   (2005-10-18 08:47) [7]


> where EXTRACT(YEAR FROM ZAJAVKA.data) = EXTRACT(YEAR FROM
> "NOW")

не ф... ничего  не  вышло, просто  в  MYSQL  это есть,  я  надеялась, что  и  в  FB тоже, но  походу  увы. Эх, и придется  параметром  работать:

> через параметры будет более правильно

ты  конечно  прав....


 
Anatoly Podgoretsky ©   (2005-10-18 08:53) [8]

erika ©   (18.10.05 08:47) [7]
Дело не в параметрах, а в вычислениях по полю, вместо использования диапазона, а в этом случае производительность может упасть на порядки.
Параметры просто позволят задавать любой диапазон расчета.
Не знаю как там в FB хранятся даты, но если в составе есть время, то не нарвись на побочные эффект, поэтому может быть проще заменить выражение на следующее
where ZAJAVKA.data >= :StartDate AND ZAJAVKA.data < :EndDate

StartDate = 1.01.Year
EndDate = 1.01.Year+1


 
sniknik ©   (2005-10-18 08:58) [9]

> я  надеялась, что  и  в  FB тоже, но  походу  увы.
есть. не помню точный синтаксис, т.к. не работаю с IB (раз только сталкивался), но чтото похожее там точно работает (может кавычки вокруг NOW должны быть двойные, может вообще без них... не помню).


 
Johnmen ©   (2005-10-18 09:04) [10]

Просто барышня erika никак не желает читать документацию...:(


 
erika ©   (2005-10-18 09:37) [11]

Вроде что - то нашла:

select cast("now" as DATE) from RDB$DATABASE

SELECT ZAJAVKA.DATA, ZAJAVKA.IDZ
FROM ZAJAVKA
where EXTRACT(YEAR FROM ZAJAVKA.data) = EXTRACT(YEAR FROM current_date)

Всем  БОЛЬШОЕ   спасибо  за   участие  в  этой  теме и внимание к  моей персоне



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.017 c
14-1131418978
TModem
2005-11-08 06:02
2005.11.27
У кого нибудь есть модем Zyxel UNO ?


14-1131446476
Аноним
2005-11-08 13:41
2005.11.27
Аномальное явление?


2-1131813261
Катерина
2005-11-12 19:34
2005.11.27
Как очистить строки (s1,s2:string)?


6-1123681064
Hose
2005-08-10 17:37
2005.11.27
проблема с THTTPRIO


14-1130918218
kaif
2005-11-02 10:56
2005.11.27
Задачка: доска против Думкина





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский