Memilih berdasarkan bulan dalam bidang tanggal / waktu menggunakan ArcGIS Desktop?


13

Saya ingin memilih berdasarkan bulan tertentu dari bidang tanggal / waktu saya di ArcGIS, dan sepertinya tidak bisa menemukan pernyataan yang akan berfungsi.

Saya memiliki beberapa tahun dan beberapa hari, tetapi ingin memfilternya dan hanya memilih catatan dari bulan Mei.


Di mana data Anda disimpan? fGDB? shapefile? SQL Server? Peramal?
Derek Swingley

Bagaimana Anda mencari data? Saya tahu ada bug di mana elemen waktu datetime tidak muncul jika waktunya tengah malam. Ingat juga, bahwa lokal itu penting dalam urutan data, berbulan-bulan, khususnya. Ada sejumlah operasi yang dapat Anda gunakan dalam Python atau VBS untuk menyebarkan data tanggal, serta di sisi Oracle (Antara, dll ...).
Berbulu

Data disimpan dalam shapefile.

Terima kasih! berguna - saya melakukan seleksi berdasarkan tanggal dengan sangat cepat!

selamat datang di GIS.StackExchange. "Jawaban Anda" dimaksudkan untuk jawaban potensial atas pertanyaan yang ada, bukan komentar. Jangan ragu untuk meninggalkan komentar di bawah jawaban yang paling sesuai untuk Anda, dan tekan tombol "upvote" untuk memberikan lebih banyak kredibilitas untuk jawaban itu. Dengan cara itu pembaca baru akan dapat menentukan jawaban mana yang paling mungkin membantu.
RyanKDalton

Jawaban:


8

Mungkin kira-kira seperti ini:

  1. Buka tabel atribut shapefile dan klik Opsi> Pilih Menurut Atribut
  2. Ketik DatePart("M", [YourDateField]) = 5(untuk Mei) dan klik Terapkan.

Contoh kode ini bekerja dengan sangat baik. Saya benar-benar menggunakannya untuk menghitung nilai bidang baru untuk bulan berdasarkan Date DatePart.
RyanKDalton

6

Sintaksnya bervariasi tergantung dari mana data diambil (file gdb, shapefile, personal gdb, Oracle, DB2, dll.).

File Geodatabase, shapefile, dan data berbasis file seperti file dbf :

Semuanya di bulan Mei:

EXTRACT(MONTH FROM "MyDate") = 05

Sebelum tengah hari:

EXTRACT(HOUR FROM "MyDate") < 12

Personal Geodatabase ( .mdb ):

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

SQL Server :

DATEPART(month, MyDate) = 05

Untuk perincian lebih lanjut seperti batasan lebih lanjut dan permintaan per jam / tahun / dll. lihat Esri HowTo: Cari bagian tertentu dari tanggal yang disimpan dalam bidang Tanggal-Waktu . Untuk contoh lebih lanjut menggunakan Kalkulator Bidang, lihat ArcWatch Menyederhanakan Perhitungan Tanggal dan Waktu .


2
Hanya ingin menambahkan komentar untuk membantu orang lain membaca jawaban ini. Saya membuat kesalahan dengan membungkus nilai bulan dalam tanda kutip (mis. EXTRACT (MONTH FROM "MyDate") = '05') berpikir saya mengembalikan sebuah string tetapi EXTRACT mengembalikan hari, bulan atau tahun sebagai bilangan bulat.
Hornbydd

5

Di ArcGIS 10 (mungkin berfungsi serupa di versi sebelumnya di alat select by attributes Anda dapat menentukan pernyataan pemilihan untuk memiliki rentang antara awal bulan dan akhir bulan, tetapi sintaksis di ArcMap aneh.

Kueri pemilihan akan terlihat seperti ini:

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

Saya menggunakan excel untuk membuat daftar panjang rentang bulan dan kemudian menggunakan pembuat model untuk membuat skrip untuk batch pilih dengan permintaan di atas, memperbarui bidang 'pesanan oleh', dan kemudian mengekspor ke sebuah kelas mandiri filegeodatabase feature databasenya.


sumber data saya ada di geodatabase file.
Max Squires

1
Ini bekerja! Sayang sekali Anda harus menuliskannya untuk SETIAP tahun dalam dataset. Terima kasih!

3

Coba sesuatu seperti ...

Select DatePart(MM, GetDate()) as Current_Month

2

Anda harus dapat menggunakan fungsi database yang sesuai untuk menanyakan bulan dari bidang tanggal. Misalnya, di Oracle Anda dapat memilih berdasarkan atribut mana To_Char([date],'MM') = 4.


1

Sebuah skrip sederhana untuk ditulis adalah mendapatkan tanggal secara keseluruhan, lalu membaginya:

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

Kemudian lakukan perbandingan Anda pada nilai Bulan


0

Retas yang mengerikan, tetapi Anda dapat mengekspor tabel atribut Anda ke .csv; impor ke Excel, dan parsing tahun / bulan / hari di excel. Kemudian gabungkan lembar kerja Excel itu ke meja Anda, dan urutkan pada bulan itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.