Wybieranie według miesiąca w polu daty / godziny za pomocą ArcGIS Desktop?

13

Chciałbym wybrać według określonego miesiąca z pola daty / godziny w ArcGIS i po prostu nie mogę znaleźć stwierdzenia, które będzie działać.

Mam wiele lat i wiele dni, ale chcę je odfiltrować i wybrać rekordy tylko od maja.

PolyGeo
źródło
Gdzie są przechowywane twoje dane? fGDB? plik kształtu? SQL Server? Wyrocznia?
Derek Swingley,
Jak szukasz danych? Wiem, że istnieje błąd, w którym element czasu datetime nie wyświetla się, jeśli jest północ. Pamiętaj też, że ustawienia regionalne są ważne w kolejności danych, szczególnie miesięcy. Istnieje cały szereg operacji, których można użyć w Pythonie lub VBS do rozpowszechniania danych dotyczących dat, a także po stronie Oracle (między itd.).
Hairy
Dane są przechowywane w pliku kształtu.
Dziękuję Ci! było przydatne - bardzo szybko dokonałem wyboru według dat!
Witamy w GIS.StackExchange. „Twoja odpowiedź” dotyczy potencjalnych odpowiedzi na pytanie, a nie komentarzy. Dodaj komentarz pod odpowiedzią, która najbardziej Ci odpowiadała, i naciśnij przycisk „upvote”, aby zwiększyć wiarygodność tej odpowiedzi. W ten sposób nowi czytelnicy będą mogli ustalić, która odpowiedź najprawdopodobniej pomoże.
RyanKDalton

Odpowiedzi:

8

Być może coś takiego:

  1. Otwórz tabelę atrybutów shapefile i kliknij Opcje> Wybierz według atrybutów
  2. Wpisz DatePart("M", [YourDateField]) = 5(w maju) i kliknij Zastosuj.
JamesS
źródło
Ten przykładowy kod działa naprawdę dobrze. Właściwie użyłem go do obliczenia nowych wartości pól dla miesiąca na podstawie Month DatePart.
RyanKDalton
6

Składnia różni się w zależności od tego, skąd dane są pobierane (plik gdb, plik kształtu, osobisty gdb, Oracle, DB2 itp.).

Plik Geobaza danych, pliki kształtów i dane oparte na plikach, takie jak pliki dbf :

Wszystko w maju:

EXTRACT(MONTH FROM "MyDate") = 05

Przed południem:

EXTRACT(HOUR FROM "MyDate") < 12

Osobista geobaza danych ( .mdb ):

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

SQL Server :

DATEPART(month, MyDate) = 05

Aby uzyskać więcej informacji, takich jak dalsze ograniczenia i zapytania według godziny / roku / itp. zobacz Poradnik Esri : wyszukiwanie określonych części daty przechowywanych w polu Data-godzina . Aby zapoznać się z rozszerzonymi przykładami używania kalkulatora pola, zobacz ArcWatch Uprość obliczenia daty i godziny .

matowe wilkie
źródło
2
Chcę tylko dodać komentarz, aby inni mogli przeczytać tę odpowiedź. Popełniłem błąd, zawijając wartość miesiąca w cudzysłowie (np. EXTRACT (MIESIĄC OD „MyDate”) = „05”) myśląc, że zwracam ciąg znaków, ale EXTRACT zwraca dzień, miesiąc lub rok jako liczbę całkowitą.
Hornbydd,
5

W ArcGIS 10 (prawdopodobnie działa podobnie we wcześniejszych wersjach w narzędziu wyboru według atrybutów) można określić instrukcję wyboru tak, aby miała zakres od początku miesiąca do końca miesiąca, ale składnia w ArcMap jest dziwna.

Kwerenda wyboru powinna wyglądać następująco:

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

Użyłem programu Excel, aby utworzyć długą listę zakresów miesięcy, a następnie użyłem konstruktora modeli, aby wykonać skrypt do wybierania partii za pomocą powyższego zapytania, zaktualizować pole „sortuj według”, a następnie wyeksportować do samodzielnej klasy plików bazy danych.

Max Squires
źródło
moje dane źródłowe znajdują się w geobazie pliku.
Max Squires
1
To działa! Szkoda, że ​​musiałbyś to zapisywać na KAŻDY rok w zbiorze danych. Dzięki!
3

Wypróbuj coś takiego ...

Select DatePart(MM, GetDate()) as Current_Month
Brad Nesom
źródło
2

Powinieneś być w stanie użyć odpowiedniej funkcji bazy danych, aby wyszukać miesiąc z pola daty. Na przykład w Oracle można wybrać według atrybutu gdzie To_Char([date],'MM') = 4.

Anthony -GISCOE-
źródło
1

Prostym skryptem do napisania byłoby pobranie daty w całości, a następnie podzielenie jej:

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

Następnie wykonaj porównanie wartości miesiąca

Włochaty
źródło
0

Okropny hack, ale możesz wyeksportować swoją tabelę atrybutów do .csv; zaimportuj do programu Excel i przeanalizuj rok / miesiąc / dzień w programie Excel. Następnie dołącz ten arkusz Excela do swojej tabeli i posortuj według miesiąca.

djq
źródło