ArcGIS Desktop kullanarak tarih / saat alanında aya göre mi seçim yapıyorsunuz?


13

ArcGIS'teki tarih / saat alanımdan belirli bir aya göre seçim yapmak istiyorum ve işe yarayacak bir ifade bulamıyorum.

Birden fazla yılım ve birkaç günüm var, ancak bunları filtrelemek ve sadece Mayıs ayından kayıtları seçmek istiyorum.


Verileriniz nerede saklanıyor? fGDB? şekil dosyası? SQL Server? Oracle?
Derek Swingley

Verileri nasıl arıyorsunuz? Zaman gece yarısı ise datetime zaman unsurunun göstermediği bir hata olduğunu biliyorum. Ayrıca, yerel ayarın veri sırasına, aylara, özellikle de önemli olduğunu unutmayın. Tarih verilerini ve Oracle tarafında (Arasında, vb ...) yaymak için Python veya VBS'de kullanabileceğiniz bir dizi işlem vardır.
Kıllı

Veriler şekil dosyasında saklanır.

teşekkür ederim! yararlı oldu - seçimimi çok hızlı bir şekilde tarihlere yaptım!

GIS.StackExchange'e hoş geldiniz. "Cevabınız", soruya değil, eldeki soruya yönelik potansiyel cevaplar içindir. Sizin için en uygun cevabın altına yorum bırakmaktan çekinmeyin ve bu cevaba daha fazla güvenilirlik sağlamak için "yukarı oy" düğmesine basın. Bu şekilde yeni okuyucular hangi cevabın yardımcı olabileceğini tahmin edebileceklerdir.
RyanKDalton

Yanıtlar:


8

Belki böyle bir şey:

  1. Shapefile nitelik tablosunu açın ve Seçenekler> Özelliklere Göre Seç'i tıklayın
  2. Tip DatePart("M", [YourDateField]) = 5(Mayıs için) ve Uygula'yı tıklayın.

Bu kod örneği gerçekten iyi çalışıyor. Aslında Ay DatePart dayalı ay için yeni bir alan değerleri hesaplamak için kullanılır.
RyanKDalton

6

Sözdizimi, verilerin alındığı yere göre değişir (dosya gdb, şekil dosyası, kişisel gdb, Oracle, DB2 vb.).

Dosya Geodatabase, şekil dosyaları ve dbf dosyaları gibi dosya tabanlı veriler :

Mayıs ayında her şey:

EXTRACT(MONTH FROM "MyDate") = 05

Öğleden önce:

EXTRACT(HOUR FROM "MyDate") < 12

Kişisel Coğrafi Veritabanı ( .mdb ):

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

SQL Server :

DATEPART(month, MyDate) = 05

Daha fazla sınırlama ve saat / yıl / gibi sorgulama gibi daha fazla ayrıntı için. Esri Nasıl Yapılır: Tarih-Saat alanında depolanan bir tarihin belirli bölümlerini arama . Field Calculator kullanarak genişletilmiş örnekler için ArcWatch Tarih ve Saat Hesaplamalarını Basitleştirin konusuna bakın .


2
Bu cevabı okuyan diğer kişilere yardımcı olmak için yorum eklemek yeterlidir. Bir değer döndürdüğümü ancak EXTRACT gün, ay veya yıl bir tamsayı olarak düşünüyor tırnak (örneğin EXTRACT (MONTH FROM "MyDate") = '05') ay değeri kaydırma hatası yapıyordum.
Hornbydd

5

ArcGIS 10'da (muhtemelen özniteliklere göre seçme aracındaki önceki sürümlerde benzer şekilde çalışır) seçim ifadesini ayın başı ile ayın sonu arasında bir aralığa sahip olacak şekilde belirtebilirsiniz, ancak ArcMap'teki sözdizimi gariptir.

Seçim sorgusu şöyle görünmelidir:

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

Ay aralıklarının uzun bir listesini yapmak için excel kullandım ve sonra yukarıdaki sorgu tarafından toplu olarak bir komut dosyası yapmak, bir 'siparişi' alanı güncellemek ve daha sonra tek başına bir dosyageri veritabanı özellik sınıfına vermek için model oluşturucu kullandım.


kaynak verilerim bir dosya coğrafi veritabanında.
Max Squires

1
Bu çalışıyor! Veri kümesinde HER yıl için yazmanız çok kötü. Teşekkürler!

3

Şuna benzer bir şey deneyin ...

Select DatePart(MM, GetDate()) as Current_Month

2

Tarih alanından ayı sorgulamak için uygun veritabanı işlevini kullanabilmeniz gerekir. Örneğin, Oracle'da where özelliğine göre seçebilirsiniz To_Char([date],'MM') = 4.


1

Yazmak için basit bir komut dosyası tarihi tamamen almak ve sonra bölmek olacaktır:

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

Ardından, Ay değeriyle karşılaştırmanızı yapın


0

Korkunç kesmek, ancak özellik tablonuzu .csv dosyasına aktarabilirsiniz; Excel'e aktarın ve yıl / ay / günü excel'de ayrıştırın. Ardından, Excel çalışma sayfasına tablonuza katılın ve aya göre sıralayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.