Тип DATE
Тип DATE реализуется с помощью 8-байтового числа с плавающей запятой. Дни представлены целым числом приращения, начиная с 30 декабря 1899 года, полуночи по нулю времени. Значение часа выражается абсолютным значением дробной части числа. В следующей таблице показаны несколько дат вместе с числовым эквивалентом типа DATE:
Дата и время | Представление |
---|---|
30 декабря 1899 года, полночь | 0.00 |
1 января 1900 года, полночь | 2.00 |
4 января 1900 года, полночь | 5.00 |
4 января 1900, 6 утра | 5,25 |
4 января 1900 г., полдень | 5.50 |
4 января 1900, 9 вечера | 5.875 |
Тип даты DATE, а также COleDateTime
класс, представляет даты и время в виде классической строки чисел. Класс COleDateTime
содержит несколько методов для управления значениями DATE, включая преобразование в другие распространенные форматы дат.
При работе с этими форматами даты и времени в службе автоматизации следует отметить следующие моменты:
Даты указываются в локальном времени; синхронизация должна выполняться вручную при работе с датами в разных часовых поясах.
Типы дат не учитывают время дневной экономии.
Временная шкала даты становится прекращенной для значений дат меньше 0 (до 30 декабря 1899 года). Это связано с тем, что целочисленная часть значения даты обрабатывается как подписанный, а дробная часть обрабатывается как неподписанную. Другими словами, общая часть значения даты может быть положительной или отрицательной, а дробная часть значения даты всегда добавляется к общей логической дате. В следующей таблице показано несколько примеров.
Дата и время | Представление |
---|---|
27 декабря 1899 года, полночь | –3,00 |
28 декабря 1899 года, полдень | -2.50 |
28 декабря 1899, полночь | -2,00 |
29 декабря 1899 года, полночь | -1,00 |
30 декабря 1899, 6 вечера | -0.75 |
30 декабря 1899 года, полдень | -0,50 |
30 декабря 1899 г., 6 утра | -0,25 |
30 декабря 1899 года, полночь | 0.00 |
30 декабря 1899 г., 6 утра | 0.25 |
30 декабря 1899 года, полдень | 0,50 |
30 декабря 1899, 6 вечера | 0.75 |
31 декабря 1899 года, полночь | 1.00 |
1 января 1900 года, полночь | 2.00 |
1 января 1900 г., полдень | 2,50 |
2 января 1900 г., полночь | 3.00 |
Внимание
Обратите внимание, что поскольку 6:00 всегда представлен дробным значением 0,25 независимо от того, является ли целое число, представляющее день положительным (после 30 декабря, 1899) или отрицательные (до 30 декабря 1899 г.), простое сравнение с плавающей запятой ошибочно сортирует любую ДАТУ, представляющую 6:00 в день раньше 12.30.1899, как позднее , чем ДАТА, представляющая 7:00 AM в тот же день.
Дополнительные сведения о проблемах, связанных с ДАТой и типами, можно найти в разделе "Класс COleDateTime" COleDateTime
и "Дата и время": поддержка автоматизации.