Страница 1 из 1

Make Query Table и условие BETWEEN

Добавлено: 16 ноя 2012, 11:31
esmo
Здравствуйте.
Наблюдаемая проблема:
При построении таблицы с помощью Make Query Table в качестве условия задаю следующее выражение - фильтр по дате

Код: Выделить всё

SELECT * FROM Snow WHERE "Date" BETWEEN "2007-10-01" AND "2008-05-31"
В полученной таблице оказываются только записи с датой за 2007 год, вплоть до 2007-12-31, записи за 2008 год отсутствуют.
Можете объяснить несведующему?

Re: Make Query Table и условие BETWEEN

Добавлено: 16 ноя 2012, 15:31
Дмитрий Барышников
В зависимости от источника данных персональная, файловая, SDE синтаксис может отличаться. Я проверял работу синтаксиса через стандартный диалог выборки по атрибутам. Кроме того, я делал так

Код: Выделить всё

SELECT * FROM Snow WHERE Date > '2007-10-01' AND Date < '2008-05-31'

и все работало.

Re: Make Query Table и условие BETWEEN

Добавлено: 16 ноя 2012, 16:42
esmo
bishop,
спасибо за подсказку, не буду использовать BETWEEN ))

Доп. вопрос: а часть даты как можно вернуть, например фильтр по номеру месяца, года и дня? В SQL reference описана функция EXTRACT(extract_field FROM extract_source) в которой можно использовать YEAR, MONTH и DAY.
В Query Builder запрос вида

Код: Выделить всё

SELECT * FROM Snow WHERE EXTRACT(MONTH from "Date")=2 
верифицируется, но при выполнении Make Query Table возникает ошибка 99999.

Re: Make Query Table и условие BETWEEN

Добавлено: 16 ноя 2012, 17:45
Дмитрий Барышников
Если 99999 т.е. реальную ошибку ArcGIS не выдает - остаются костыли в виде экстракта всех компонентов даты в отдельные поля через калькулятор поля.