Главная страница
    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.012 c
4-1127817486
Adept
2005-09-27 14:38
2005.11.27
Перехват API Функций


14-1130847271
Курдль
2005-11-01 15:14
2005.11.27
Про бухгалтерский учет и его принципы.


2-1131304186
ЯТутаНовичек
2005-11-06 22:09
2005.11.27
Помогите с TDate


14-1131181753
Lisa
2005-11-05 12:09
2005.11.27
Помогите с DXF


14-1130951141
Piter
2005-11-02 20:05
2005.11.27
Кто-нибудь работал с контроллерами Advantech ADAM?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский