日付フィールドはデータ ソース タイプによって異なり、それらの表示はシステム ロケールに依存します。日付属性の表示、計算、または選択に応じて、データベースの日付フィールドを操作するための適切な方法を決定する必要があります。
[属性検索] や同様のクエリ構築ダイアログ ボックスでの日付フィールド値の選択と表示には SQL 構文が使用されますが、SQL 構文はデータベースやデータ形式に応じて異なります。詳細については、「SQL リファレンス」のトピックをご参照ください。
属性テーブルでの日付フィールドの計算と表示には、異なる形式と構文が使用されます。これは、ArcMap の [フィールド演算] が Python および VBScript 関数を使用し、表示形式がデータベースではなくシステムに依存するためです。このトピックでは、属性テーブルで日付フィールドを操作する方法と、(属性テーブルから [フィールド演算] コマンドで起動される) [フィールド演算] ジオプロセシング ツールの使用方法について説明します。
日付の表示
カバレッジまたはシェープファイルは、日付フィールドを「yyyy-mm-dd」形式で格納します。ジオデータベースは、日時を「yyyy-mm-dd hh:mm:ss AM または PM」として格納します。Windows システムの設定によって、「M/d/yy」、「MM/dd/yy」、「yy/MM/dd」などのように、日付が ArcMap で表示される方法が決まります。ArcMap は、日付の表示にシステムの短い日付形式 (数値) を使用します。
日付フィールドの計算
日付フィールドを計算する際、ArcMap の [フィールド演算] は Python および VBScript の日付関数を使用します。関数の一部は、「yyyy-mm-dd hh:mm:ss AM または PM」形式の日時をサポートしています。ただし、カバレッジやシェープファイルでは、日時値の時間の部分が切詰められます。たとえば、「2002-08-20 12:00:00 PM」は、カバレッジやシェープファイルでは「2002-08-20」として格納されます。
Python の datetime 関数を使用して、日付を計算することができます。現在時間に等しい属性を計算する場合は、today() 関数を使用できます。
また、日付を計算するときに、2 桁の年を使用することもできます。date_field = dateserial(02,8,20) のように、日付を計算するときに 2 桁の年 (この場合は 02) を指定すると、世紀を表す部分はシステムの設定によって制御されます。この設定は、Windows システムの [地域オプション] で調整できます。
日付フィールドの値の入力
ArcMap の日付フィールドの形式は、mm/dd/yyyy hh:mm:ss と AM または PM の指定です。日付または時刻の全部または一部を入力できます。たとえば、次の入力はすべて指定可能です。
- 1/31/2000
- January 31 2000
- January 31, 2000
- 1/31 - 現在の年が自動的に値に追加されます
- 1:00:00 PM
- 1:00:00 - AM が自動的に値に追加されます
- Python の例 - time.strftime('31/1/2000')
- VB スクリプトの例 - cdate("1/31/2000") または cdate(#1/31/2000#)