ArcGIS Desktopを使用して日付/時刻フィールドで月ごとに選択しますか?


12

ArcGISの日付/時刻フィールドから特定の月までに選択したいのですが、機能するステートメントが見つからないようです。

複数の年と複数の日がありますが、それらを除外し、5月からのレコードのみを選択します。


データはどこに保存されますか?fGDB?シェープファイル?SQLサーバー?オラクル?
デレクスウィングレー

データをどのように検索していますか?時刻が真夜中の場合、datetimeの時刻要素が表示されないバグがあることを知っています。また、特にロケールの場合、データ、月の順でロケールが重要であることを忘れないでください。PythonまたはVBSで日付データを配布するために使用できる操作のホストはもちろん、Oracle側(Betweenなど)でも使用できます。
毛深い

データはシェープファイルに保存されます。

ありがとうございました!便利でした-日付による選択を非常に迅速に行いました!

GIS.StackExchangeへようこそ。「あなたの答え」は、コメントではなく、手元の質問に対する潜在的な答えを意味します。自分に最適な回答の下にコメントを残してください。「投票」ボタンを押して、その回答の信頼性を高めてください。そうすれば、新しい読者は、どの答えが最も役立つ可能性が高いかを判断できます。
RyanKDalton

回答:


7

おそらくこのようなもの:

  1. シェープファイルの属性テーブルを開き、[オプション]> [属性で選択]をクリックします。
  2. 入力DatePart("M", [YourDateField]) = 5(月の場合)、[適用]をクリックします。

このコードサンプルは非常にうまく機能します。実際に、Month DatePartに基づいて月の新しいフィールド値を計算するために使用しました。
RyanKDalton

6

構文は、データの取得元(ファイルgdb、シェープファイル、パーソナルgdb、Oracle、DB2など)によって異なります。

ファイルジオデータベース、シェープファイル、およびdbfファイルなどのファイルベースのデータ:

5月のすべて:

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 Simplify Date and Time Calculations」を参照してください。


2
他の人がこの回答を読むのに役立つコメントを追加したいだけです。文字列を返していたが、EXTRACTが日、月、または年を整数として返すと思って、月の値を引用符で囲むという誤りを犯していました(たとえば、EXTRACT(MONTH FROM "MyDate")= '05')。
ホーンバイド

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
これは動作します!データセットで1年ごとに書き出す必要があるのは残念です。ありがとう!


2

適切なデータベース関数を使用して、日付フィールドから月を照会できる必要があります。たとえば、Oracleでは、属性whereで選択できますTo_Char([date],'MM') = 4


1

記述する簡単なスクリプトは、日付全体を取得してから分割することです。

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

次に、月の値で比較を行います


0

恐ろしいハックですが、属性テーブルを.csvにエクスポートできます。Excelにインポートし、Excelで年/月/日を解析します。次に、そのExcelワークシートをテーブルに結合し、月で並べ替えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.