Выбор по месяцам в поле даты / времени с помощью ArcGIS Desktop?


13

Я хотел бы выбрать конкретный месяц из моего поля даты / времени в ArcGIS и просто не могу найти утверждение, которое будет работать.

У меня есть несколько лет и несколько дней, но я хочу отфильтровать их и выбрать записи только за май месяц.


Где хранятся ваши данные? fGDB? шейпфайл? SQL Server? Oracle?
Дерек Суингли

Как вы ищете данные? Я знаю, что есть ошибка, когда элемент времени datetime не отображается, если время полночь. Помните также, что локаль важна в порядке данных, месяцев, особенно так. Существует целый ряд операций, которые вы можете использовать в Python или VBS для распространения данных о дате, а также на стороне Oracle (между и т. Д.).
Волосатые

Данные хранятся в шейп-файле.

Спасибо! было полезно - я сделал свой выбор по датам очень быстро!

добро пожаловать в GIS.StackExchange. «Ваш ответ» предназначен для потенциальных ответов на поставленный вопрос, а не для комментариев. Не стесняйтесь оставлять комментарий под ответом, который работал лучше всего для вас, и нажмите кнопку "upvote", чтобы придать больше ответа этому ответу. Таким образом, новые читатели смогут определить, какой ответ, скорее всего, поможет.
RyanKDalton

Ответы:


8

Возможно, что-то вроде этого:

  1. Откройте таблицу атрибутов шейп-файла и нажмите Параметры> Выбрать по атрибутам
  2. Введите DatePart("M", [YourDateField]) = 5(на май) и нажмите Применить.

Этот пример кода работает очень хорошо. Я фактически использовал это, чтобы вычислить новые значения поля для месяца, основанного на DatePart Месяца.
RyanKDalton

6

Синтаксис варьируется в зависимости от того, откуда данные извлекаются (файл GDB, шейп-файл, персональный GDB, Oracle, DB2 и т. Д.).

Файловая база геоданных, шейп-файлы и данные на основе файлов, такие как файлы dbf :

Все в мае:

EXTRACT(MONTH FROM "MyDate") = 05

До полудня:

EXTRACT(HOUR FROM "MyDate") < 12

Личная геоданных ( .mdb ):

DATEPART("m", [MyDate]) = 05

SQL Server :

DATEPART(month, MyDate) = 05

Для получения более подробной информации, такой как дополнительные ограничения и запрос по часам / годам и т. Д. см. Esri HowTo: поиск определенных частей даты, хранящейся в поле «Дата-время» . Для расширенных примеров использования Field Calculator см. ArcWatch Упростите расчеты даты и времени .


2
Просто хочу добавить комментарий, чтобы помочь другим, читающим этот ответ. Я сделал ошибку, заключив значение месяца в кавычки (например, EXTRACT (MONTH FROM "MyDate") = '05'), думая, что возвращаю строку, но EXTRACT возвращает день, месяц или год как целое число.
Хорнбидд

5

В ArcGIS 10 (вероятно, работает аналогично в более ранних версиях в инструменте выбора по атрибутам, вы можете указать оператор выбора, чтобы иметь диапазон между началом месяца и концом месяца, но синтаксис в ArcMap странный.

Запрос выбора должен выглядеть следующим образом:

"DateField" >= date '05/01/2011 00:00:00' AND "DateField" < date '06/01/2011 00:00:00'

Я использовал Excel, чтобы составить длинный список диапазонов месяцев, а затем использовал конструктор моделей, чтобы создать скрипт для пакетного выбора по вышеуказанному запросу, обновить поле 'order by' и затем экспортировать в автономный класс объектов filegeodatabase.


мои исходные данные находятся в файловой базе геоданных.
Макс Сквайрс

1
Это работает! Жаль, что вам придется записывать это в КАЖДЫЙ год в наборе данных. Благодарность!


2

Вы должны иметь возможность использовать соответствующую функцию базы данных для запроса месяца из поля даты. Например, в Oracle вы можете выбрать по атрибуту где To_Char([date],'MM') = 4.


1

Простой сценарий, который нужно написать, состоит в том, чтобы получить дату целиком, а затем разделить ее:

Time = "2011-04-06 11:26:51"
Month = newTime.split("-")[1]

Затем сравните значение месяца


0

Ужасно, но вы можете экспортировать свою таблицу атрибутов в .csv; импортировать в Excel и анализировать год / месяц / день в Excel. Затем присоедините этот лист Excel к таблице и выполните сортировку по месяцу.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.