Поля дат могут отличаться в типах источников данных, и их отображение зависит от региональных настроек вашей системы. Когда вы отображаете, вычисляете или выбираете по атрибутам даты, вы должны указать подходящий способ работы с полями дат в вашей базе данных.
Выбор и отображение значений полей дат в Выборе по атрибутам аналогичен диалогам построения запросов, сделанным для использования синтаксиса SQL, который варьируется в зависимости от исходной базы данных или формата данных. Подробно это описано в данном разделе справочника по SQL.
Вычисление и отображение полей дат в атрибутивной таблице осуществляется в отличающемся формате и с другим синтаксисом. Это происходит потому, что калькулятор полей в ArcMap использует функции Python и VBScript, и формат отображения зависит от системы, а не от базы данных. В этой теме описана работа только с полями дат с помощью атрибутивной таблицы и инструмента геообработки Калькулятор поля (запускается соответствующей командой из таблицы атрибутов).
Отображение дат
Покрытия или шейп-файлы хранят даты в полях типа дат следующего формата: yyyy-mm-dd. Формат даты в базе геоданных – дата/время (datetime) yyyy-mm-dd hh:mm:ss AM или PM. Установки вашей системы Windows определяют, как даты отображаются в ArcMap – например, M/d/yy, MM/dd/yy, yy/MM/dd, и так далее. В ArcMap для отображения дат используется системный формат короткой даты (числовой).
Вычисление полей дат
При вычислении полей дат в ArcMap калькулятор полей использует функции Python и VBScript. Некоторые из этих функций поддерживают yyyy-mm-dd hh:mm:ss AM или PM. Но для покрытий и шейп-файлов часть, относящаяся ко времени, отсекается от значения даты. Например, дата/время 2002-08-20 12:00:00 PM будет сохранена в покрытии или шейп-файле как 2002-08-20.
Любая функция даты/времени Python может использоваться для вычисления даты. Если вы хотите вычислить атрибут, равный текущему времени, можете воспользоваться функцией today().
При вычислении дат также можно использовать две последние цифры года. Когда вы вычисляете дату, такую как date_field = dateserial(02,8,20) и указываете две цифры для года (в этом случае – 02), используются настройки вашей системы, которые определят век. Эта опция может быть настроена в Региональных настройках в системе Windows.
Более подробно про использование двух последних цифр года при вычислении дат
Ввод значений для полей дат
Форматом полей дат в ArcMap является ММ/ДД/ГГГГ ЧЧ:ММ:СС с указанием времени до или после полудня (соответственно AM или PM). Можно указать дату или время полностью или только частично. Все следующие примеры входных значений являются допустимыми:
- 1/31/2000
- January 31 2000
- January 31, 2000
- 1/31 – Текущий год будет автоматически добавлен к этому значению.
- 1:00:00 PM
- 1:00:00 – AM будет автоматически добавлено к этому значению.
Можно также использовать скрипт Python или VB:
- Пример Python – time.strftime('31/1/2000')
- Пример скрипта VB – cdate("1/31/2000") или cdate(#1/31/2000#)