Значения времени ваших временных данных рекомендуется хранить в поле даты. Это особый тип поля базы данных, предназначенный специально для хранения информации о времени и дате. Он наиболее эффективен с точки зрения скорости обработки запроса и поддерживает более сложные запросы в базе данных по сравнению с вариантами хранения значений времени в числовом или строчном поле.
Если у вас есть значения времени, хранящиеся в строковом или числовом поле, вы можете при желании конвертировать эти строковые или числовые поля (типа short, long, float или double) в поле даты с помощью инструмента геообработки Преобразовать поле времени. Инструмент геообработки Преобразовать поле времени предоставляет гибкую возможность задавать стандартный или пользовательский рисунок формата времени, используемый для интерпретации значений даты и времени и их преобразования в формат даты для эффективного использования в ArcGIS. При хранении значений времени в строковом или числовом поле следует придерживаться одного из стандартных поддерживаемых строковых или числовых форматов. Может оказаться, однако, что есть значения времени, хранящиеся в строковом поле, имеющем пользовательский формат времени, например, Вторник, 20 августа 2002 г.
Стандартные форматы, поддерживаемые инструментом геообработки Преобразовать поле времени, несложно соблюдать. Однако, если есть значения времени, хранящиеся в строковом поле, имеющем пользовательский формат даты и/или времени, необходимо иметь представление о концепциях создания пользовательского рисунка формата даты и/или времени, который будет использоваться для интерпретации данных. Например, при использовании инструмента геообработки Преобразовать поле времени для преобразования значения времени Вторник, 20 августа 2002 г., хранящегося, как строка, в формат даты, необходимо указать формат входного времени в виде дддд, ММММ дд, гггг.
Рисунки формата даты и времени
Рисунок формата даты и/или времени – это строка текста, которая используется для интерпретации значений данных, содержащих информацию о дате и/или времени. Каждый рисунок формата состоит из комбинации форматов из доступных типов формата. Примерами типов формата являются День недели, Месяц, Час и Секунда. В одном рисунке формата даты и/или времени следует использовать только один формат из каждого типа формата. При этом необязательно включать каждый тип формата в рисунок формата. Например, очень часто в рисунок формата даты включают только информацию о Годе, Месяце и Дне месяца, без информации о времени дня.
Рисунок формата может содержать только информацию о времени, только информацию о дате или комбинированную информацию о дате и времени. Рисунки формата могут также включать разделители, такие как запятые, которые можно использовать для разделения форматов, используемых в рисунке формата.
В общем случае, вам нужно проанализировать ваши пользовательские данные и определить подходящий рисунок формата даты и/или времени для интерпретации ваших данных. Примеры внизу дают представление о разнообразии возможных рисунков форматов для интерпретации даты и времени в различных форматах.
Примеры рисунков формата даты и времени
Пример значения данных | Рисунок формата |
---|---|
30/05/1978 02:34:56 | дд/мм/гггг чч:мм:сс |
02.04.2010 14:39:28 | м/д/гггг ч:мм:сс тт |
06:05:12 | ч:мм:сс тт |
23:31:18.345 | ЧЧ:мм:сс.с |
Вторник, 20 августа 2002 г. | dddd, MMMM dd, yyyy |
Среда, 31 августа 1994 г. | ддд, МММ дд гггг |
03281999030456 | ММддггггЧЧммсс |
1491519015420000 | unix_us |
1390416015335 | unix_ms |
1384616513 | unix_s |
58E6C69F | unix_hex |
Форматы даты и времени
В следующей таблице приведены форматы, которые можно использовать для создания рисунков формата даты и/или времени для интерпретации пользовательских данных.
Форматы даты и времени
Формат | Тип формата | Описание |
---|---|---|
d | День месяца | День месяца, указанный цифрами, без нуля в начале для дат из одной цифры. |
dd | День месяца | День месяца, указанный цифрами, с нулем в начале для дат из одной цифры. |
ddd | День недели | Аббревиатура названия дня недели. Функция использует сокращения, принятые в заданном языке (регионе), например, Mon в Английский (США). |
dddd | День недели | Полное название дня недели. Функция использует полные названия дней, принятые в заданном языке (регионе), например, Monday в Английский (США). |
М | Месяц | Месяц, указанный цифрами, без нуля в начале для дат из одной цифры. |
MM | Месяц | Месяц, указанный цифрами, с нулем в начале для месяцев из одной цифры. |
MMM | Месяц | Трехбуквенное сокращение названия месяца. Функция использует сокращенные названия месяцев, принятые в заданном языке (регионе), например, Nov в Английский (США). |
MMMM | Месяц | Полное название месяца. Функция использует полные названия месяцев, принятые в заданном языке (регионе), например, November для Английский (США) и Noviembre для Испанский (Испания). |
г | Год | Две последние цифры года, без указания нуля впереди для значений, меньших 10. |
гг | Год | Две последние цифры года с нулем впереди для значений года, меньших 10. |
ггг | Год | Три цифры года. Таким образом можно представить значения года в диапазоне 1-999. |
гггг | Год | Четыре цифры года. |
gg | Эра | Строка периода/эры. Функция использует значения эры, принятые в заданном языке (регионе). |
h | Час | Значение часа без нуля впереди для одноразрядных значений; 12-часовая шкала. |
H | Час | Значение часа без нуля впереди для одноразрядных значений; 24-часовая шкала. |
hh | Час | Значение часа с нулем впереди для одноразрядных значений; 12-часовая шкала. |
HH | Час | Значение часа с нулем впереди для одноразрядных значений; 24-часовая шкала. |
м | Минута | Число минут без нуля впереди для одноразрядных значений. |
мм | Минута | Число минут с нулем впереди для одноразрядных значений. |
s | Секунда | Число секунд без нуля впереди для одноразрядных значений. |
ss | Секунда | Число секунд с нулем впереди для одноразрядных значений. |
s.s | Секунда | Число секунд, включая доли секунды, без нуля впереди для одноразрядных значений. Хотя в формате указан только один десятичный знак, можно использовать любое число десятичных знаков. |
ss.s | Секунда | Число секунд, включая доли секунды, с нулем впереди для одноразрядных значений. Хотя в формате указан только один десятичный знак, можно использовать любое число десятичных знаков. |
t | Маркер времени | Односимвольная строка маркера времени, такая как A или P. |
tt | Маркер времени | Многосимвольная строка маркера времени, такая как AM или PM. |
unix_us | Время в формате Unix | Время в формате Unix в микросекундах. |
unix_ms | Время в формате Unix | Время в формате Unix в миллисекундах. |
unix_s | Время в формате Unix | Время в формате Unix в секундах. |
unix_hex | Время в формате Unix | Время Unix в шестнадцатеричном формате. |
Разделители
Разделители — это символы, используемые для разделения информации в текстовых значениях данных. В качестве разделителей обычно используют запятые (,), двоеточия (:) и пробелы (), однако нет никаких ограничений на использование других разделителей для создания рисунков форматов. Можно также создавать рисунки форматов без разделителей. Обычно это требуется при интерпретации даты и времени, хранящихся в числовых полях, потому что большинство основных используемых разделительных символов в них не допускаются.
В редких случаях может оказаться, что разделители, используемые в данных, конфликтуют с форматами из вышеприведенной таблицы. В этих немногочисленных случаях можно использовать одиночные кавычки для изолирования разделителей в рисунке формата. В общем случае, одиночные кавычки для изолирования разделителей в рисунке формата допустимы, однако не рекомендуется использовать их, если есть риск конфликта. Эти концепции проиллюстрированы в примерах ниже.
Пример значения данных | Рисунок формата | Интерпретируемые дата или время (отображаемые в виде MM/dd/yyyy или HH:mm:ss) |
---|---|---|
месяц12день30год2010 | 'месяц'MM'день'dd'год'yyyy | 12/30/2010 |
30/12/2010 | ddMMyyyy | 12/30/2010 |
Время:18ч6мин3сек | 'Время:'h'ч'm'мин's'сек' | 18:06:03 |
18:6:3 | HH:m:s | 18:06:03 |
Места
Заданный язык (регион) важен, поскольку определяет допустимые значения данных для полных представлений некоторых форматов даты в таблице, приведенной выше. Например, значение November будет правильно интерпретировано для MMMM только при выборе англоязычного региона. В некоторых случаях, когда в используемом рисунке формата отсутствуют полные представления, язык (регион) может не иметь значения для интерпретации даты. Однако, важно отметить, что язык (регион) может все же влиять на интерпретацию указателей AM и PM. Если указатели AM или PM не определены, будут использоваться указатели AM и PM по умолчанию для данного языка (региона).
Язык (регион) не влияет на форматы, используемые для создания рисунков формата. Другими словами, символ M (или MM, MMM, MMMM) используется для представления месяцев независимо от выбранного языка (региона). В примерах ниже иллюстрируется использование языка (региона) для интерпретации дат.
Значение данных | Рисунок формата | Местоположение | Интерпретируемая дата (MM/dd/yyyy) |
---|---|---|---|
30 ноября 2010 г. | MMMM dd, yyyy | Английский (США) | 11/30/2010 |
30 ноября 2010 г. | MMMM dd, yyyy | Испанский (Испания) | 11/30/2010 |
Пон, 22 Фев 2010 г. | ddd, MMM dd, yyyy | Английский (США) | 2/22/2010 |
30/12/2010 | dd/M/yyyy | Любой язык (регион) | 12/30/2010 |
AM и PM указатели
Стандартные маркеры времени, или AM и PM указатели, существуют для каждого языка (региона). Однако некоторые из инструментов в ArcGIS предоставляют гибкую возможность определения пользовательских маркеров времени. Если в вашем рисунке формата имеются маркеры времени (t или tt), то необходимо определить символы, используемые для их представления. Важно отметить, что маркеры времени уместны только в рисунках формата, использующих 12-часовую шкалу (h или hh). Они не подходят для рисунков форматов с 24-часовой шкалой (H или HH). Если вы не определили ваши собственные маркеры времени, будут использоваться стандартные маркеры времени для выбранного языка (региона). Для определения пользовательских указателей AM и PM, поле времени должно иметь текстовый тип данных поля. В примерах внизу, иллюстрирующих эти концепции, для простоты используется только PM указатель. Те же концепции справедливы для AM указателя.
Значение данных | Рисунок формата | PM указатель | Интерпретируемое время (HH:mm:ss) |
---|---|---|---|
18:12:34 | h:mm:ss t | P | 18:12:34 |
18:12:34 | h:mm:ss tt | после обеда | 18:12:34 |
6:12:34 | H:mm:ss | PM | 6:12:34 |
18:12:34 | h:mm:ss tt | PM | 18:12:34 |