Вибір місяця в полі дати та часу за допомогою ArcGIS Desktop?


13

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

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


Де зберігаються ваші дані? fGDB? форм-файл? SQL Server? Oracle?
Дерек Свінглі

Як ви шукаєте дані? Я знаю, що є помилка, де елемент часу timetime не відображається, якщо час є опівночі. Пам’ятайте також, що локаль важливий у порядку даних, місяцях, тим більше. Існує ціла низка операцій, які ви можете використовувати в Python або VBS для поширення даних про дату, а також на стороні Oracle (Між тощо).
Волохатий

Дані зберігаються у файлі форми.

Дякую! було корисно - я зробив свій вибір за датами дуже швидко!

Ласкаво просимо до GIS.StackExchange. "Ваша відповідь" призначений для потенційних відповідей на питання, а не для коментарів. Не соромтесь залишити коментар під відповіддю, який найкраще працював для вас, і натисніть кнопку "підняти заявку", щоб надати більшу довіру до цієї відповіді. Таким чином нові читачі зможуть зрозуміти, яка відповідь, швидше за все, допоможе.
RyanKDalton

Відповіді:


8

Можливо, щось подібне:

  1. Відкрийте таблицю атрибутів формфайлу та натисніть Опції> Вибрати за атрибутами
  2. Введіть DatePart("M", [YourDateField]) = 5(за травень) і натисніть Застосувати.

Цей зразок коду працює дуже добре. Я фактично використовував його для обчислення нових значень поля для місяця, заснованого на Month DatePart.
RyanKDalton

6

Синтаксис змінюється залежно від того, звідки надходять дані (файл gdb, shapefile, personal gdb, Oracle, DB2 тощо).

Файл Geodatabase, shapefiles та файлові дані, такі як dbf файли:

Все в травні:

EXTRACT(MONTH FROM "MyDate") = 05

До полудня:

EXTRACT(HOUR FROM "MyDate") < 12

Особиста геоданих ( .mdb ):

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

SQL Server :

DATEPART(month, MyDate) = 05

Для отримання детальної інформації, таких як додаткові обмеження та запит за годиною / роком / тощо. див. Esri HowTo: пошук конкретних частин дати, що зберігаються в полі Date-Time . Для розширених прикладів використання полевого калькулятора див. ArcWatch спрощення обчислень дати та часу .


2
Просто хочу додати коментар, щоб допомогти іншим читати цю відповідь. Я робив помилку, обертаючи значення місяця цитатами (наприклад, ЕКСТРАКТ (МІСЯЦЬ З "MyDate") = "05"), думаючи, що я повертаю рядок, але ЕКСТРАКТ повертає день, місяць чи рік як ціле число.
Хорнбідд

5

У ArcGIS 10 (напевно, працює аналогічно у попередніх версіях в інструменті select by attributes) ви можете вказати оператор вибору, щоб мати діапазон між початком місяця і кінцем місяця, але синтаксис в ArcMap дивний.

Вибір запиту повинен виглядати приблизно так:

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

Я використав excel, щоб скласти довгий список діапазонів місяців, а потім застосував конструктор моделей, щоб створити сценарій для вибору пакету за вищезазначеним запитом, оновити поле "замовлення за", а потім експортувати в окремий клас файлових баз даних dataclass.


мої вихідні дані знаходяться у базі даних геоданих.
Макс Сквайрс

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.