time — Возвращает текущую метку времени


Содержание

Функции CURRENT_DATE, CURRENT_TIMESTAMP и LOCALTIMESTAMP

возвращает текущую дату из сеанса пользователя;

имеет тип данных DATE .

возвращает текущие дату и время из сеанса пользователя;

имеет тип данных TIMESTAMP WITH TIME ZONE .

возвращает текущие дату и время из сеанса пользователя;

имеет тип данных TIMESTAMP .

Функции CURRENT_DATE и CURRENT_TIMESTAMP возвращают метку текущей даты и текущего времени соответственно. Значения функции CURRENT_DATE имеют тип данных DATE . Значения функции CURRENT_TIMESTAMP имеют тип данных TIMESTAMP WITH TIME ZONE . Возвращаемые значения показывают смещение часового пояса сеанса SQL, в котором выполняются функции.

Смещение часового пояса равно разнице (в часах и минутах) между местным временем и всеобщим скоординированным временем. Тип данных TIMESTAMP WITH TIME ZONE имеет следующий формат:

TIMESTAMP [ (fractional_seconds_precision) ] WITH TIME ZONE

где необязательный параметр fractional_seconds_precision задает количество разрядов в дробной части поля SECOND времени-даты, причем значение этого параметра может быть целым числом в диапазоне от 0 до 9. Значение по умолчанию равно 6.

Функция LOCALTIMESTAMP возвращает текущие дату и время в часовом поясе сеанса. Разница между функциями LOCALTIMESTAMP и CURRENT_TIMESTAMP заключается в том, что функция LOCALTIMESTAMP возвращает значение TIMESTAMP , тогда как функция CURRENT_TIMESTAMP возвращает значение TIMESTAMP WITH TIME ZONE .

Эти функции зависят от параметра поддержки национального языка NLS – то есть результаты будут представляться в форматах календаря, даты и времени текущего параметра NLS.

Примечание . Функция SYSDATE возвращает текущие дату и время как тип данных DATE . Порядок использования функции SYSDATE излагается в блоге Oracle Database 11g: SQL Fundamentals I (База данных Oracle 11g: основы SQL I).

microtime

(PHP 4, PHP 5, PHP 7)

microtime — Возвращает текущую метку времени Unix с микросекундами

Описание

Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().

Список параметров

Если указано и установлено в TRUE , microtime() возвратит число с плавающей точкой ( float ) вместо строки ( string ), как описано в разделе возвращаемых значений ниже.

Возвращаемые значения

По умолчанию microtime() возвращает строку ( string ) в формате «msec sec», где sec представляет собой количество секунд с начала эпохи Unix (1 января 1970 0:00:00 GMT), а msec — это количество микросекунд, прошедших после sec.

Если параметр get_as_float установлен в TRUE , то microtime() возвратит результат в вещественном виде ( float ), представляющий собой текущее время в секундах, прошедших с начала эпохи Unix с точностью до микросекунд.

Примеры

Пример #1 Замер времени выполнения скрипта с помощью функции microtime()

/**
* Простая функция для реализации поведения из PHP 5
*/
function microtime_float ()
<
list( $usec , $sec ) = explode ( » » , microtime ());
return ((float) $usec + (float) $sec );
>

// Спим некоторое время
usleep ( 100 );

$time_end = microtime_float ();
$time = $time_end — $time_start ;

echo «Ничего не делал $time секунд\n» ;
?>

Пример #2 Замер времени выполнения скрипта в PHP 5

// Спим некоторое время
usleep ( 100 );

$time_end = microtime ( true );
$time = $time_end — $time_start ;

echo «Ничего не делал $time секунд\n» ;
?>

Пример #3 Пример использования microtime() и REQUEST_TIME_FLOAT (начиная с PHP 5.4.0)

// Выбираем время сна случайным образом
usleep ( mt_rand ( 100 , 10000 ));

// Начиная с PHP 5.4.0 в суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time = microtime ( true ) — $_SERVER [ «REQUEST_TIME_FLOAT» ];

echo «Ничего не делал $time секунд\n» ;
?>

Смотрите также

  • time() — Возвращает текущую метку времени Unix

C ++ — Дата и время

Стандартная библиотека C ++ не предоставляет правильный тип даты. C ++ наследует структуры и функции для обработки дат и времени из C. Чтобы получить доступ к функциям и структурам, связанным с датой и временем, вам нужно будет включить заголовочный файл в вашей программе на C ++.

Существует четыре типа времени: clock_t, time_t, size_t и tm . Типы — clock_t, size_t и time_t могут представлять системное время и дату как некоторое целое число.

Тип структуры tm содержит дату и время в виде структуры C, имеющей следующие элементы:

Ниже приведены важные функции, которые мы используем при работе с датой и временем на C или C ++. Все эти функции являются частью стандартной библиотеки C и C ++, и вы можете проверить их детали, используя ссылку на стандартную библиотеку C ++, приведенную ниже.

time_t time (time_t * time); Это возвращает текущее время календаря системы в количестве секунд, прошедших с 1 января 1970 года. Если система не имеет времени, возвращается .1.
char * ctime (const time_t * time); Это возвращает указатель на строку формы день месяц год: минуты: секунды год \ n \ 0 .
struct tm * localtime (const time_t * time); Это возвращает указатель на структуру tm, представляющую локальное время.
clock_t clock (void); Это возвращает значение, которое приблизительно соответствует времени, в течение которого вызываемая программа была запущена. Значение, равное .1, возвращается, если время недоступно.
char * asctime (const struct tm * time); Это возвращает указатель на строку, содержащую информацию, хранящуюся в структуре, на которую указывает время, преобразованное в форму: day month date hours: minutes: seconds year \ n \ 0
struct tm * gmtime (const time_t * time); Это возвращает указатель на время в виде структуры tm. Время представлено в скоординированном универсальном времени (UTC), которое по сути является средним временем по Гринвичу (GMT).
time_t mktime (struct tm * time); Это возвращает эквивалент календарного времени времени, найденного в структуре, на которую указывает время.
double difftime (time_t time2, time_t time1); Эта функция вычисляет разницу в секундах между временем 1 и временем 2.
size_t strftime (); Эта функция может использоваться для форматирования даты и времени в определенном формате.

Текущая дата и время

Предположим, вы хотите получить текущую системную дату и время, либо в качестве локального времени, либо в качестве скоординированного универсального времени (UTC). Ниже приведен пример для достижения того же:

Когда приведенный выше код компилируется и выполняется, он производит следующий результат:

Формат времени с использованием struct tm

Структура tm очень важна при работе с датой и временем на C или C ++. Эта структура содержит дату и время в виде структуры C, как указано выше. Большинство функций, связанных со временем, используют структуру tm. Ниже приведен пример, который использует различные функции, связанные с датой и временем, и структуру tm —

При использовании структуры в этой главе я исхожу из предположения, что у вас есть базовое понимание структуры C и как получить доступ к членам структуры с помощью оператора arrow -> .

Когда приведенный выше код компилируется и выполняется, он производит следующий результат:

GETDATE (Transact-SQL) GETDATE (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Возвращает текущую системную метку времени базы данных в виде значения datetime без смещения часового пояса базы данных. Returns the current database system timestamp as a datetime value without the database time zone offset. Это значение наследуется от операционной системы компьютера, на котором работает экземпляр SQL Server SQL Server . This value is derived from the operating system of the computer on which the instance of SQL Server SQL Server is running.

SYSDATETIME и SYSUTCDATETIME имеют большую точность в долях секунды, чем GETDATE и GETUTCDATE. SYSDATETIME and SYSUTCDATETIME have more fractional seconds precision than GETDATE and GETUTCDATE. SYSDATETIMEOFFSET включает смещение часового пояса, заданное в системе. SYSDATETIMEOFFSET includes the system time zone offset. SYSDATETIME, SYSUTCDATETIME и SYSDATETIMEOFFSET можно присваивать переменным любого типа даты и времени. SYSDATETIME, SYSUTCDATETIME, and SYSDATETIMEOFFSET can be assigned to a variable of any of the date and time types.

Обзор всех типов данных и функций даты и времени в языке Transact-SQL Transact-SQL см. в статье Типы данных и функции даты и времени (Transact-SQL). For an overview of all Transact-SQL Transact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL).

Синтаксис Syntax

Тип возвращаемых данных Return Type

datetime datetime

Remarks Remarks

Функция GETDATE может использоваться в инструкциях Transact-SQL Transact-SQL везде, где допустимо использование выражения datetime. Transact-SQL Transact-SQL statements can refer to GETDATE anywhere they can refer to a datetime expression.

GETDATE является недетерминированной функцией. GETDATE is a nondeterministic function. Невозможно проиндексировать представления и выражения, ссылающиеся на эту функцию в столбце. Views and expressions that reference this function in a column cannot be indexed.

Использование SWITCHOFFSET с функцией GETDATE() может вызвать замедление выполнения запроса, поскольку оптимизатор запросов не может получить точные оценки количества элементов для значения GETDATE. Using SWITCHOFFSET with the function GETDATE() can cause the query to run slowly because the query optimizer is unable to obtain accurate cardinality estimates for the GETDATE value. Рекомендуется заранее вычислить значение GETDATE, а затем указать это значение в запросе, как показано в следующем примере. We recommend that you precompute the GETDATE value and then specify that value in the query as shown in the following example. Кроме того, с помощью указания запроса OPTION (RECOMPILE) можно вынудить оптимизатор запросов повторно компилировать план запроса при каждом выполнении одного и того же запроса. In addition, use the OPTION (RECOMPILE) query hint to force the query optimizer to recompile a query plan the next time the same query is executed. В этом случае оптимизатор будет иметь точные оценки количества элементов для GETDATE(), что позволит ему сформировать более эффективный план запроса. The optimizer will then have accurate cardinality estimates for GETDATE() and will produce a more efficient query plan.

Илон Маск рекомендует:  Отправка post запроса из perl сценария


Примеры Examples

В следующих примерах с помощью шести системных функций SQL Server SQL Server , которые возвращают текущую дату и время, происходит возврат даты, времени или и того и другого. The following examples use the six SQL Server SQL Server system functions that return current date and time to return the date, time, or both. Значения возвращаются последовательно и поэтому могут различаться на доли секунды. The values are returned in series; therefore, their fractional seconds might be different.

A. A. Получение текущей системной даты и времени Getting the current system date and time

Ниже приводится результирующий набор. Here is the result set.

Б. B. Получение текущей системной даты Getting the current system date

Ниже приводится результирующий набор. Here is the result set.

В. C. Получение текущего системного времени Getting the current system time

Ниже приводится результирующий набор. Here is the result set.

Примеры: Azure Synapse Analytics (хранилище данных SQL) Azure Synapse Analytics (SQL DW) и Параллельное хранилище данных Parallel Data Warehouse Examples: Azure Synapse Analytics (хранилище данных SQL) Azure Synapse Analytics (SQL DW) and Параллельное хранилище данных Parallel Data Warehouse

В приведенных ниже примерах с помощью трех системных функций SQL Server SQL Server , которые возвращают текущую дату и время, происходит получение даты, времени или и того и другого. The following examples use the three SQL Server SQL Server system functions that return current date and time to return the date, time, or both. Значения возвращаются последовательно и поэтому могут различаться на доли секунды. The values are returned in series; therefore, their fractional seconds might be different.

Решение проблемы 2038 года на PHP 5.2

19 января 2038 года в 03:14:07 по Всемирному времени, в приложениях, работающих под 32-битной версией PHP, может произойти сбой. В этот момент, стандартные функции работы с датой и временем перестанут корректно обрабатывать текущее время.

Все это связано с тем, что для представления даты и времени используется целое число. Данное число представляет собой количество секунд прошедших с начала эпохи UNIX, а именно с полночи 1 января 1970 года по Всемирному времени. В 32-битной версии PHP для хранения этого числа используется 32-битное целое со знаком. Максимально возможным значением для такого типа является 2 147 483 647, которое соответствует указанной критической дате.

Существует большая степень вероятности того, что к 2038 году все функционирующие системы и PHP-интерпретаторы будут 64-битные. Такое изменение, даст возможность беспрепятственно работать с датой примерно на 290 миллиардов лет вперед. Однако возникает сомнение, что это произойдет к 2038 году.

Еще одной проблемой 2038 года является невозможность работы с датами в прошлом и в будущем, уже сейчас. Под данное ограничение подпадают даты находящиеся до 1902 и после 2037 года.

Пути решения

Существует 2 способа решения данной проблемы:

  1. Не делать ничего, т.к. к 2038 году проблема будет решена естественным образом;
  2. Использовать встроенный класс «DateTime».

Первый способ полностью себя исчерпывает и, несмотря на свою простоту, является недальновидным.

Второй способ, напротив, имеет право на существование. О нем и пойдет речь далее.

Класс «DateTime»

Класс «DateTime», появившийся в PHP 5.2, призван полностью решить проблему 2038 года. Однако, программистам, привыкшим к стандартным функциям обработки даты и времени, работать с этим классом будет неудобно. Для ускорения процесса разработки приложений лучше всего использовать функции являющиеся интерфейсом к классу «DateTime».

Чтобы упростить жизнь программистов, я написал несколько аналогов часто используемых функций работы с датой и временем. Стоит заметить, что входные параметры и поведение функций не идентично встроенным аналогам.

SQL — Функции даты

Дата публикации: 2020-12-13

От автора: сегодня мы поговорим о том, как работают в SQL функции даты. В следующей таблице приведен список всех важных функций, связанных с датой и временем, которые доступны. Существуют и другие, поддерживаемые различными СУБД. Данный список представляет функции, доступные в СУБД MySQL.

ADDDATE(). Добавляет даты

ADDTIME(). Добавляет время

CONVERT_TZ(). Преобразует из одного часового пояса в другой

CURDATE(). Возвращает текущую дату

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

CURRENT_DATE(), CURRENT_DATE. Синонимы для CURDATE()

CURRENT_TIME(), CURRENT_TIME. Синонимы для CURTIME()

CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP. Синонимы для NOW()

CURTIME(). Возвращает текущее время

DATE_ADD(). Слагает две даты

DATE_FORMAT(). Задает указанный формат даты

DATE_SUB(). Вычитает одну дату из другой

DATE(). Извлекает часть, относящуюся к дате, из выражения представляющего дату или время и дату

DATEDIFF(). Вычитает одну дату из другой

DAY(). Синоним для DAYOFMONTH()

DAYNAME(). Возвращает день недели

DAYOFMONTH(). Возвращает день месяца (1-31)

DAYOFWEEK(). Возвращает индекс дня недели аргумента

DAYOFYEAR(). Возвращает номер дня в году (1-366)

EXTRACT. Извлекает часть, относящуюся к дате

FROM_DAYS(). Преобразует номер дня в дату

FROM_UNIXTIME(). Форматирует дату как временную метку UNIX

HOUR(). Извлекает час

LAST_DAY. Возвращает последний день месяца для аргумента

LOCALTIME(), LOCALTIME. Синоним для NOW()

LOCALTIMESTAMP, LOCALTIMESTAMP (). Синоним для NOW()

MAKEDATE(). Создает дату из года и дня года

MAKETIME. MAKETIME(). MICROSECOND(). Возвращает микросекунды из аргумента

MINUTE(). Возвращает минуты из аргумента

MONTH(). Возврат месяца из даты

MONTHNAME(). Возвращает название месяца

NOW(). Возвращает текущую дату и время

PERIOD_ADD(). Добавляет период к году-месяцу

PERIOD_DIFF(). Возвращает количество месяцев между периодами

QUARTER(). Возвращает квартал из аргумента

SEC_TO_TIME(). Преобразует секунды в формат «HH: MM: SS»

SECOND(). Возвращает секунды (0-59)


STR_TO_DATE(). Преобразует строку в дату

SUBDATE(). При вызове с тремя аргументами синоним DATE_SUB()

SUBTIME(). Вычитает время

SYSDATE(). Возвращает время выполнения функции

TIME_FORMAT(). Задает формат времени

TIME_TO_SEC(). Возвращает аргумент, преобразованный в секунды

TIME(). Извлекает часть, относящуюся ко времени, из переданного выражения

TimeDiff(). Вычитает время

TIMESTAMP(). С одним аргументом эта функция возвращает выражение даты или даты и времени. С двумя аргументами — слагает эти два аргумента

TIMESTAMPADD(). Добавляет интервал к выражению даты и времени

TIMESTAMPDIFF(). Вычитает интервал из выражения даты и времени

TO_DAYS(). Возвращает аргумент даты, преобразованный в дни

UNIX_TIMESTAMP(). Возвращает временную метку UNIX

UTC_DATE(). Возвращает текущую дату UTC

UTC_TIME(). Возвращает текущее время UTC

UTC_TIMESTAMP(). Возвращает текущую дату и время UTC

WEEK(). Возвращает номер недели

WEEKDAY(). Возвращает индекс дня недели

WEEKOFYEAR(). Возвращает календарный номер недели (1-53)

YEAR(). Возвращает год

YEARWEEK(). Возвращает год и неделю

ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)

При вызове со вторым аргументом, заданным в виде INTERVAL, функция ADDDATE() является синонимом DATE_ADD(). Связанная функция SUBDATE() является синонимом DATE_SUB(). Информацию об аргументе блока INTERVAL см. в разделе DATE_ADD().

При вызове со вторым аргументом, заданным в днях, MySQL рассматривает это как целое число дней для добавления в выражение.

ADDTIME(expr1,expr2)

ADDTIME () добавляет expr2 к expr1 и возвращает результат. Expr1 является выражением времени или даты и времени, в то время как expr2 является выражением времени.

CONVERT_TZ(dt,from_tz,to_tz)

Преобразует значение даты и времени dt из часового пояса, заданного в from_tz, в часовой пояс, заданный в to_tz, и возвращает полученное значение. Эта функция возвращает NULL, если аргументы недействительны.

CURDATE()

Возвращает текущую дату как значение в формате «YYYY-MM-DD» или YYYYMMDD, в зависимости от того, используется ли эта функция в строковом или в числовом контексте.

CURRENT_DATE и CURRENT_DATE()

CURRENT_DATE и CURRENT_DATE() являются синонимами для CURDATE()

CURTIME()

Возвращает текущее время как значение в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или в числовом контексте. Значение выражается для текущего часового пояса.

CURRENT_TIME и CURRENT_TIME()

CURRENT_TIME и CURRENT_TIME() являются синонимами для CURTIME().

CURRENT_TIMESTAMP и CURRENT_TIMESTAMP()

CURRENT_TIMESTAMP и CURRENT_TIMESTAMP() являются синонимами для NOW().

DATE(expr)

Извлекает часть, относящуюся к дате, из выражения даты или даты и времени expr.

DATEDIFF(expr1,expr2)

DATEDIFF() возвращает expr1.expr2, выраженное как количество дней между двумя датами. И expr1, и expr2 являются выражениями даты или даты и времени. В расчетах используются только части относящиеся к дате.

DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)

Эти функции выполняют арифметические операции с датами. date представлено как значение DATETIME или DATE, указывающее начальную дату. expr представляет собой выражение, определяющее значение интервала, который нужно добавить или вычесть из исходной даты. expr — это строка; она может начинаться с «-» для отрицательных интервалов.

unit является ключевым словом, указывающим единицы измерения для выражения. Ключевое слово INTERVAL и обозначение единиц не чувствительны к регистру. В следующей таблице показана ожидаемая форма аргумента expr для каждого значения единицы измерения.

Значения QUARTER и WEEK доступны в MySQL начиная с версии 5.0.0.

DATE_FORMAT (date,format)

Эта команда задает формат значения date в соответствии с указанной строкой format. В строке format могут использоваться следующие указатели. Перед указателями формата необходимо добавлять символ ‘%’.

%a. Сокращенное название дня недели (Sun..Sat)

%b. Сокращенное название месяца (Jan..Dec)

%с. Числовое обозначение месяца (0…12)

%D. День месяца с английским суффиксом (0, 1, 2, 3,.)

%d. Числовое обозначение дня месяца (00..31)

%е. Числовое обозначение дня месяца (00..31)

%f. Микросекунды (000000..999999)

%i. Числовое обозначение минут (00..59)

%J. День года (001..366)

%M. Название месяца (January..December)

%м. Числовое обозначение месяца (00..12)

%r. Время, 12-часовой формат (чч: мм: сс, за которым следуют AM или PM)

%Т. Время, 24-часовой формат (чч: мм: сс)

%U. Неделя (00..53), где воскресенье — первый день недели

%u. Неделя (00..53), где понедельник — первый день недели

%V. Неделя (01..53), где воскресенье — первый день недели; используется вместе с %X

%v. Неделя (01..53), где понедельник — первый день недели; используется вместе с %x


%W. Название дня недели (Sunday..Saturday)

%w. День недели (0=Sunday..6=Saturday)

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

%X. Год для недели, где первый день недели — воскресенье, число из четырех цифр; используется вместе с %V

%x. Год для недели, где первый день недели — понедельник, число из четырех цифр; используется вместе с %V

%Y. Год, число, четыре цифры

%y. Числовое обозначение года (две цифры)

%x. x, для всех .x., не перечисленных выше

DATE_SUB(date,INTERVAL expr unit)

Аналогично функции DATE_ADD ().

DAY(date)

DAY() является синонимом функции DAYOFMONTH().

DAYNAME(date)

Возвращает день недели для указанной даты.

DAYOFMONTH(date)

Возвращает день месяца для указанной даты в диапазоне от 0 до 31.

DAYOFWEEK(date)

Возвращает индекс дня недели (1 = Sunday, 2 = Monday, ., 7 = Saturday). Эти значения индекса соответствуют стандарту ODBC.

DAYOFYEAR(date)

Возвращает день года для указанной даты в диапазоне от 1 до 366.

EXTRACT(unit FROM date)

Функция EXTRACT() использует те же типы указателей единиц измерения, что и DATE_ADD() или DATE_SUB(), но не выполняет арифметические операции с датами, а извлекает из даты часть относящуюся к указателю единиц измерения.

FROM_DAYS(N)

Возвращается значение DATE с учетом числа дней N.

Примечание. Используйте FROM_DAYS() для старых дат осторожно. Функция не предназначена для работы со значениями дат до введения григорианского календаря (1582).

FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)

Возвращает представление аргумента unix_timestamp как значение в формате «YYYY-MM-DD HH: MM: SS или YYYYMMDDHHMMSS» в зависимости от того, используется ли эта функция в строковом или в числовом контексте. Значение выражается в текущем часовом поясе. Параметр unix_timestamp является внутренним значением метки времени, которое создается функцией UNIX_TIMESTAMP().

Илон Маск рекомендует:  Быстрый вывод треугольника

Если format указано, результат форматируется в соответствии со строкой format, которая используется так же, как описано в разделе DATE_FORMAT().

HOUR(time)

Возвращает часы из указанного времени. Диапазон возвращаемого значения составляет от 0 до 23. Однако диапазон значений TIME на самом деле намного больше, поэтому HOUR может возвращать значения, превышающие 23.

LAST_DAY(date)

Принимает значение даты или даты и времени и возвращает значение, соответствующее последнему дню месяца. Возвращает NULL, если аргумент недействителен.

LOCALTIME и LOCALTIME()

LOCALTIME и LOCALTIME() являются синонимами для NOW().

LOCALTIMESTAMP и LOCALTIMESTAMP()

LOCALTIMESTAMP и LOCALTIMESTAMP() являются синонимами для NOW().

MAKEDATE(year,dayofyear)

Возвращает значения даты, заданного года и дня года. Значение dayofyear должно быть больше 0 или результат будет NULL.

MAKETIME(hour,minute,second)

Возвращает значение времени, рассчитанное из аргументов hour, minute и second.

MICROSECOND(expr)

Возвращает микросекунды из выражения времени или выражения datetime(expr) в виде числа в диапазоне от 0 до 999999.

MINUTE(time)

Возвращает минуты для указанного времени, в диапазоне от 0 до 59.

MONTH(date)

Возвращает месяц для указанной даты в диапазоне от 0 до 12.

MONTHNAME(date)

Возвращает полное название месяца для указанной даты.

Возвращает текущую дату и время как значение в формате «YYYY-MM-DD HH: MM: SS» или YYYYMMDDHHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте. Это значение выражается в текущем часовом поясе.

PERIOD_ADD(P,N)

Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM). Возвращает значение в формате YYYYMM. Обратите внимание, что аргумент периода P не является значением даты.

PERIOD_DIFF(P1,P2)

Возвращает количество месяцев между периодами P1 и P2. Периоды P1 и P2 должны указываться в формате YYMM или YYYYMM. Обратите внимание, что аргументы периодов P1 и P2 не являются значениями даты.

QUARTER(date)

Возвращает квартал года для указанной даты в диапазоне от 1 до 4.

SECOND(time)

Возвращает значение секунд для времени в диапазоне от 0 до 59.

SEC_TO_TIME(seconds)

Возвращает аргумент seconds, преобразованный в часы, минуты и секунды в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте.

STR_TO_DATE(str,format)

Это инверсивная функция к функции DATE_FORMAT(). Она принимает строку str и строку формата format. Функция STR_TO_DATE() возвращает значение DATETIME, если строка формата содержит как дату, так и время. В противном случае она возвращает значение DATE или TIME, если строка содержит только дату или время.

SUBDATE(date,INTERVAL expr unit) и SUBDATE(expr,days)

Если SUBDATE() вызывается со вторым аргументом, заданным в виде INTERVAL, функция является синонимом DATE_SUB(). Информацию об аргументе INTERVAL смотрите в разделе DATE_ADD().

SUBTIME(expr1,expr2)


Функция SUBTIME() возвращает expr1. expr2 выражается как значение в том же формате, что и expr1. Значение expr1 является выражением времени или даты и времени, а значение expr2 является выражением времени.

SYSDATE()

Возвращает текущую дату и время как значение в формате «YYYY-MM-DD HH: MM: SS» или YYYYMMDDHHMMSS, в зависимости от того, используется ли функция в строковом или в числовом контексте.

TIME(expr)

Извлекает часть, относящуюся ко времени, выражения expr и возвращает его в виде строки.

TIMEDIFF(expr1,expr2)

Функция TIMEDIFF() возвращает expr1 . expr2 выражается как значение времени. Значения expr1 и expr2 представляют собой выражения времени или даты и времени, но оба они должны быть одного типа.

TIMESTAMP (expr), TIMESTAMP (expr1, expr2)

С одним указанным аргументом эта функция возвращает выражение даты или даты и времени expr, как значение даты и времени. С двумя аргументами она добавляет выражение времени expr2 к выражению даты или даты и времени expr1 и возвращает результат как значение даты и времени.

TIMESTAMPADD(unit,interval,datetime_expr)

Эта функция добавляет целочисленное выражение interval к выражению даты или времени datetime_expr. Единицы измерения для интервала задаются аргументом unit, который может принимать одно из следующих значений:

Значение unit может быть указано с использованием одного из ключевых слов, как было показано выше, или с префиксом SQL_TSI_. Например, DAY и SQL_TSI_DAY являются действительными значениями.

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Возвращает целочисленную разницу между выражениями даты или даты и времени datetime_expr1 и datetime_expr2. Единицы измерения для результата задаются аргументом unit. Действительными для аргумента unit являются те же значения, которые были перечислены в описании функции TIMESTAMPADD().

TIME_FORMAT(time,format)

Эта функция используется так же, как и функция DATE_FORMAT(), но строка format может содержать указатели формата только для часов, минут и секунд.

Если значение времени содержит часть, относящуюся к часам, которая больше 23, указатели формата часов %H и %k дают значение, большее, чем обычный диапазон от 0 до 23. Другие указатели формата часов дают значение часа 12 по модулю.

TIME_TO_SEC(time)

Возвращает аргумент time, преобразованный в секунды.

TO_DAYS(date)

Возвращает номер дня (количество дней с 0-го года) для заданной даты date.

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

Если эта функция вызывается без аргумента, она возвращает временную метку Unix (секунды с «1970-01-01 00:00:00» UTC), как целое положительное число. Если UNIX_TIMESTAMP() вызывается с аргументом date, она возвращает значение аргумента, выраженное в секундах с «1970-01-01 00:00:00» UTC. date может быть строкой DATE, строкой DATETIME, TIMESTAMP или числом в формате YYMMDD или YYYYMMDD.

UTC_DATE, UTC_DATE()

Возвращает текущую дату UTC как значение в формате «YYYY-MM-DD» или YYYYMMDD, в зависимости от того, используется ли эта функция в строковом или числовом контексте.

UTC_TIME, UTC_TIME()

Возвращает текущее время UTC как значение в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте.

UTC_TIMESTAMP, UTC_TIMESTAMP()

Возвращает текущую дату и время UTC как значение «YYYY-MM-DD HH: MM: SS» или в формате YYYYMMDDHHMMSS, в зависимости от того, используется ли эта функция в строковом или в числовом контексте.

WEEK(date[,mode])

Эта функция возвращает номер недели для заданной даты date. Форма WEEK() с двумя аргументами позволяет указать, будет ли неделя начинаться в воскресенье или в понедельник, и должно ли возвращаемое значение находиться в диапазоне от 0 до 53 или от 1 до 53. Если аргумент mode опущен, используется значение системной переменной default_week_format

WEEKDAY(date)

Возвращает индекс дня недели для заданной даты date (0 = понедельник, 1 = вторник, 6 = воскресенье).

WEEKOFYEAR(date)

Возвращает календарную неделю для заданной даты date как число в диапазоне от 1 до 53. WEEKOFYEAR() — это функция совместимости, эквивалентная WEEK(date,3).

YEAR(date)

Возвращает год для заданной даты date в диапазоне от 1000 до 9999 или 0 для даты .zero.

YEARWEEK(date), YEARWEEK(date,mode)

Возвращает год и неделю для заданной даты date. Параметр mode работает точно так же, как аргумент mode для функции WEEK(). Год в результате может отличаться от года в аргументе даты для первой и последней недели года.

Примечание. Номер недели отличается от того, что вернет функция WEEK() (0) для необязательных аргументов 0 или 1, так как WEEK() вернет неделю в контексте данного года.

Редакция: Команда webformyself.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Основы работы со временем. Примеры Топ функций по работе с timestamp. Хранение Time в QlikSense

Опубликовано qliksense-expert в 06.06.2020 06.06.2020

Содержание урока по Qlik Sense

Хранение форматов TimeStamp и Time в Qlik Sense

Использование формата Time и Timestamp в задачах бизнес-аналитики встречается не так часто, как задачи с датами. Однако, если такая задача появляется, то появляется очень много вопросов как сделать то или иное преобразование.

В предыдущей главе учебника я описывал как хранится формат timestamp (из чего он состоит). В этом разделе я опишу дополнительно с помощью каких функций можно работать со значениями Time и Timestamp.

Итак, как мы выяснили раньше Timestamp – это дробное число, в котором целая часть – это дата, а дробная часть – это время (т.е. time). Все число – это дата время или timestamp.

Рассмотрим результат работы функции Now() и функций, которые изменяют либо формат отображения данных, либо само число:

Qlik Sense Timestamp & Time – результат преобразования различных функций

Now() 16.06.2020 15:03:57
Num(Now()) 43632,627743056
Time(Now()) 15:03:57
Num(Time(Now())) 43632,627743056
Time#(Now(),’DD.MM.YYYY h:mm:ss[.fff]’) 16.06.2020 15:03:57
Num(Time#(Now(),’DD.MM.YYYY h:mm:ss[.fff]’)) 0,627743056
Frac(Now()) 0,627743056
Time(Frac(Now())) 15:03:57

Изменение в дробной части влияет на время, изменение в целой части влияет на дату. Если Вам необходимо придумать модель Qlik Sense, в которой будет хитрым образом обрабатываться время – этих знаний будет достаточно для того, чтобы “изобрести” нужный Вам алгоритм.

Топ функций в Qlik Sense для работы со временем

1. Now() – возвращает текущую Дату и текущее время (отображается в соответствии с системной переменной SET TimestampFormat=’DD.MM.YYYY h:mm:ss[.fff]’; см. вкладку Main в скрипте).

2. Time() и Time#() – аналог Date() и Date#(), только для времени). Time влияет только на отображение данных в модели, т.е. влияет только на формат отображения числа. Time# – сообщает Qlik в каком формате данные поступают на вход функции, результатом будет дробная часть (если формат определен корректно).

3. Frac() и Num() – Frac() оставляет от числа с дробной частью только дробную часть, т.е. остается часть со временем. Num() меняет формат отображения дата время на числовой формат (см. пример вверху).

4. ReloadTime()

5. MakeTime()

6. ConvertToLocalTime()

7. FileTime() – с помощью этой функции в скрипте можно получить дату и время обновления файла. Пример получения даты и времени обновления файла qvd:

8. Timestamp() и Timestamp#()

Получение текущей даты и времени в PL/SQL

В любом языке программирования важно знать, как получить текущую дату и время. Обычно это один из самых первых вопросов, возникающих при работе с датами в приложениях. До выхода Oracle8i в PL/SQL существовал только один способ получения даты и времени: функция SYSDATE . Начиная с Oracle9i, в вашем распоряжении появились все функции из табл. 10.1. От вас лишь требуется понять, как они работают и какие преимущества дает тот или иной вариант.

Функция Часовой пояс Тип возвращаемого значения
CURRENT_DATE Сеанс DATE
CURRENT_TIMESTAMP Сеанс TIMESTAMP WITH TIME ZONE
LOCALTIMESTAMP Сеанс TIMESTAMP
SYSDATE Сервер базы данных DATE
SYSTIMESTAMP Сервер базы данных TIMESTAMP WITH TIME ZONE


Какую же функцию использовать в конкретной ситуации? Ответ зависит от нескольких факторов, которые, вероятно, стоит рассматривать в следующем порядке:

  1. Если вы используете версию, предшествующую Oracle8i, или должны обеспечить совместимость с ней, выбор небогат: используйте SYSDATE .
  2. Какое время вас интересует — вашего сеанса или сервера базы данных? В первом случае используйте функцию, возвращающую сеансовое время, а во втором — функцию, возвращающую часовой пояс базы данных.
  3. Должен ли часовой пояс возвращаться в составе текущей даты и времени? Если должен, используйте функцию SYSTIMESTAMP или CURRENT_TIMESTAMP .

Если будет выбрана функция, возвращающая сеансовое время, проследите за тем, чтобы часовой пояс сеанса был задан правильно. Информацию о часовом поясе сеанса и базы данных можно получить при помощи функций SESSIONTIMEZONE и DBTIMEZONE соответственно. Чтобы получить время в часовом поясе базы данных, необходимо изменить часовой пояс сеанса на DBTIMEZONE , а затем использовать одну из сеансовых функций.

Примеры использования этих функций:

В этом примере сеанс начинается в Восточном часовом поясе (–4:00), тогда как сервер работает по времени Центрального часового пояса (–5:00), но при этом в самой базе данных используется время GMT (+00:00). Чтобы получить время в часовом поясе базы данных, мы сначала приводим часовой пояс сеанса в соответствие с часовым поясом базы данных, а затем вызываем функцию часового пояса сеанса CURRENT_TIMESTAMP . Наконец, часовой пояс сеанса снова возвращается с исходному местному значению.

Если вы используете эти функции для хронометража на уровне долей секунд, помните об ограничениях операционной системы и оборудования. Функции CURRENT_TIMESTAMP , LOCALTIMESTAMP и SYSTIMESTAMP возвращают значения в типах данных TIMESTAMP WITH TIME ZONE или TIMESTAMP , позволяющих определять время с разрешением до миллиардной доли секунды.

Илон Маск рекомендует:  Что такое код createellipticrgn

Все это, конечно, замечательно, но подумайте, откуда берется это время. База данных получает его от операционной системы в результате вызова GetTimeOfDay (Unix/ Linux), GetSystemTime (Microsoft Windows) или другой аналогичной функции операционной системы. В свою очередь, операционная система зависит от оборудования. Если операционная система или используемое оборудование способны отслеживать время с точностью до сотых долей секунды, база данных не сможет возвращать результаты с большей точностью. Например, в системе Linux на процессоре Intel x86 вы сможете отслеживать время с точностью до миллионной доли секунды (шесть цифр), тогда как при работе базы данных в Microsoft Windows XP или Vista на том же оборудовании обеспечивается точность до тысячной доли секунды. Кроме того, хотя операционная система может возвращать временной штамп с шестью знаками, результат может не соответствовать реальной точности в одну микросекунду.

Что делать, если функции, возвращающей нужный тип данных, не существует — например, если время сервера нужно получить в переменной TIMESTAMP ? Можно доверить неявное преобразование типов базе данных, но лучше воспользоваться явным преобразованием CAST . Пример:

Вызов SYSTIMESTAMP использует CAST для явного преобразования TIMESTAMP WITH TIME ZONE в TIMESTAMP . При вызове SYSDATE преобразование DATE в TIMESTAMP выполняется неявно.

ДЛЯ ЧЕГО НУЖНЫ ДВА ТИПА INTERVAL

Поначалу меня несколько удивило то, что Oracle ввела сразу два типа данных INTERVAL . Решение обрабатывать годы и месяцы отдельно от дней, часов минут и секунд выглядело довольно странно. Почему бы не создать единый тип данных INTERVAL , покрывающий все возможности? Однако оказалось, что за это нужно благодарить римского императора Юлия Цезаря (создателя юлианского календаря), определившего продолжительность большинства месяцев.

Два типа данных с разделительной линией на уровне месяцев пришлось определить потому, что месяц — это единственный компонент даты/времени с непостоянной продолжительностью. Возьмем интервал в 1 месяц и 30 дней. Какова его фактическая продолжительность? Меньше двух месяцев? Ровно два месяца? А может быть, больше? Если месяцем является январь, то через 30 дней уже наступит март, и получится интервал в 61 день, что уже несколько больше «двух месяцев». Если же этим месяцем является февраль, тогда интервал равен либо 59, либо 60 дням. Ну а если месяц — апрель, тогда интервал составит 60 дней.

Функции календарной даты/времени

См. также

Функции календарной даты/времени предназначены для обработки данных с типами DATE и DATETIME, соответствующих календарному году. Эти функции следует выбирать вместе с другим столбцом — они не могут выбираться отдельно.

Функции

Current_Date

Возвращает текущую дату. Дата определяется системой, на которой выполняется сервер Oracle BI.

Синтаксис

Current_Time

Возвращает текущее время. Время определяется системой, на которой выполняется сервер Oracle BI.

Примечание. Сервер аналитики не кэширует запросы, содержащие эту функцию.

Синтаксис

Целое число, задающее количество цифр, определяющее точность отображения дробной части.

Current_TimeStamp

Возвращает штамп текущей даты/времени. Штамп даты/времени определяется системой, на которой выполняется сервер Oracle BI.

Примечание. Сервер Oracle BI не кэширует запросы, содержащие эту функцию.

Синтаксис

Целое число, задающее количество цифр, определяющее точность отображения дробной части.

Day_of_Quarter

Для заданной даты возвращает число (от 1 до 92), соответствующее дню квартала.

Синтаксис

Любое выражение, результатом которого является дата.

DayName

Для заданной даты возвращает название дня недели.

Синтаксис

Любое выражение, результатом которого является дата.

DayOfMonth

Для заданной даты возвращает номер, соответствующий дню месяца.

Синтаксис

Любое выражение, результатом которого является дата.

DayOfWeek

Для заданной даты возвращает число от 1 до 7, соответствующее дню недели (воскресенье — суббота). Например, число 1 соответствует воскресенью, а число 7 — субботе.

Синтаксис

Любое выражение, результатом которого является дата.

DayOfYear

Для заданной даты возвращает число (от 1 до 366), соответствующее дню года.

Синтаксис

Любое выражение, результатом которого является дата.

Для заданного времени возвращает число (от 0 до 23), соответствующее часам. Например, 0 соответствует полуночи, а 23 соответствует 11 часам вечера.

Синтаксис

Любое выражение, результатом которого является время.

Minute

Для заданного времени возвращает число (от 0 до 59), соответствующее минутам.

Синтаксис

Любое выражение, результатом которого является время.

Month

Для заданной даты возвращает число (от 1 до 12), соответствующее месяцу.

Синтаксис

Любое выражение, результатом которого является дата.

Month_Of_Quarter

Для заданной даты возвращает число (от 1 до 3), соответствующее месяцу квартала.

Синтаксис

Любое выражение, результатом которого является дата.


MonthName

Для заданной даты возвращает название месяца.

Синтаксис

Любое выражение, результатом которого является дата.

Возвращает текущий штамп времени. Эта функция эквивалентна функции Current_TimeStamp.

Синтаксис

Quarter_Of_Year

Для заданной даты возвращает число (от 1 до 4), соответствующее кварталу года.

Синтаксис

Любое выражение, результатом которого является дата.

Second

Для заданного времени возвращает число (от 0 до 59), соответствующее секундам.

Синтаксис

Любое выражение, результатом которого является время.

TimestampAdd

Добавляет указанное число интервалов к указанному штампу времени и возвращает один штамп времени. При передаче в эту функцию неопределенного значения intExpr или timeExpr возвращается неопределенное значение.

В простейшем случае эта функция добавляет указанное целочисленное значение к соответствующему компоненту штампа времени (в соответствии с интервалом). Добавление недели преобразуется в добавление семи дней, а добавление квартала преобразуется в добавление трех месяцев. При отрицательном целочисленном значении производится вычитание (возврат назад во времени).

Переполнение заданного компонента (например, число секунд превышает 60, число часов превышает 24, число месяцев превышает 12 и т.д.) вызывает необходимость добавления соответствующего числа к следующему компоненту. Например, при добавлении дней в штамп времени эта функция гарантирует, что переполнение определяется с учетом количества дней в конкретном месяце (и с учетом високосных лет). Аналогичные процедуры используются для обеспечения того, что при добавлении месяца производится надлежащее изменение значения в компоненте дней (например, результат добавления месяца к ‘2000-05-31’ не равен ‘2000-06-31’, т.к. июнь содержит не 31 день). Эта функция аналогично обрабатывает компоненты месяцев и дней при добавлении и вычитании компонентов лет. Эти операции соответствуют алгоритмам Microsoft SQL Server и собственного интерфейса OCI Oracle.

Синтаксис

TimestampAdd(interval, intExpr, timestamp)

Заданный интервал. Допустимыми являются значения: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR.

Любое выражение, результатом которого является целочисленное значение.

Допустимый штамп времени.

Примеры

В примере выше запрос передается для получения штампа времени после добавления 3 дней к ‘2000-02-27 14:30:00’. Т.к. 2000 год является високосным, запрос возвращает единственный штамп времени ‘2000-03-01 14:30:00’.

В примере выше запрос передается для получения штампа времени после добавления 7 месяцев к ‘1999-07-31 00:00:00’. Запрос возвращает единственный штамп времени ‘2000-02-29 00:00:00’. Обратите внимание на уменьшение значения в компоненте дней до 29 вследствие того, что февраль — короткий месяц.

В примере выше запрос передается для получения штампа времени после добавления 25 минут к ‘2000-07-31 23:35:00’. Запрос возвращает единственный штамп времени ‘2000-08-01 00:00:00’. Обратите внимание, что переполнение распространилось до компонента месяцев.

TimestampDiff

Возвращает общее число указанных интервалов между двумя штампами времени. При передаче в эту функцию неопределенного штампа времени возвращается неопределенное значение.

Эта функция сначала определяет компонент штампа времени, соответствующий заданному интервалу, а затем проверяет компоненты более высокого порядка в обоих штампах времени для вычисления общего числа интервалов для обоих штампов времени. Например, если заданный интервал соответствует компоненту месяцев, функция вычисляет для каждого штампа времени общее количество месяцев, добавляя значение компонента месяца и значение компонента года, умноженное на двенадцать. Затем функция вычитает общее число интервалов первого штампа времени из общего числа интервалов второго штампа времени.

Когда дробные интервалы соответствуют пересечению границы интервала, функция TimestampDiff производит округление до следующего целого числа. Например, разница в годах между ‘1999-12-31’ и ‘2000-01-01’ составляет 1 год, т.к. дробная часть года соответствует переходу от одного года к следующему (например от 1999 к 2000). Наоборот, разница между ‘1999-01-01’ и ‘1999-12-31’ составляет 0 лет, т.к. дробная часть интервала полностью приходится на определенный год (т.е. 1999). В Microsoft SQL Server используется такой же алгоритм округления, а в IBM DB2 всегда производится округление в меньшую сторону. Oracle не реализует обобщенную функцию разницы между штампами времени.

При вычислении разницы в неделях данная функция вычисляет разницу в днях и перед округлением выполняет деление на семь. Кроме того, функция учитывает то, каким образом администратор задал начало новой недели в файле NQSConfig.ini. Например, когда неделя начинается с воскресенья, разница в неделях между ‘2000-07-06’ (четверг) и ‘2000-07-10’ (следующий понедельник) составит 1 неделю. Однако, если неделя начинается со вторника, эта функция возвратит значение 0 недель, т.к. дробная часть интервала полностью попадает в одну неделю. При вычислении разницы в кварталах эта функция вычисляет разницу в месяцах и делит ее на три с последующим округлением.

Сервер Oracle BI по умолчанию передает функции TIMESTAMPADD и TIMESTAMPDIFF на сервер Microsoft SQL и в базы данных ODBC. Хотя возможна передача этих функций сервером Oracle BI в IBM DB2, по умолчанию таблица возможностей отключена вследствие упрощенной семантики DB2. (В IBM DB2 реализована обобщенная функция разницы между штампами времени, TIMESTAMPDIFF, где вычисления упрощены за счет того, что год всегда считается равным 365 дням, 52 неделям, а месяц всегда считается равным 30 дням.) По умолчанию таблица возможностей отключена также для Oracle, т.к. базы данных Oracle не поддерживают эти функции полностью.

Синтаксис

TimestampDiff(interval, timestamp1, timestamp2)

Заданный интервал. Допустимыми являются значения: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR.

Допустимая отметка времени.

Допустимая отметка времени.

Примеры

В примере выше запрос передается для получения разницы в днях между штампами времени ‘1998-07-31 23:35:00’ и ‘2000-04-01 14:24:00’. Возвращается значение 610. Обратите внимание, что учет високосного 2000 года приводит к добавлению одного дня.

Week_Of_Quarter

Для заданной даты возвращает число (от 1 до 13), соответствующее неделе квартала.

Синтаксис

Любое выражение, результатом которого является дата.

Week_Of_Year

Для заданной даты возвращает число (от 1 до 53), соответствующее неделе года.

Синтаксис

Любое выражение, результатом которого является дата.

Для заданной даты возвращает год.

Синтаксис

Любое выражение, результатом которого является дата.

Функции CURRENT_DATE, CURRENT_TIMESTAMP и LOCALTIMESTAMP

возвращает текущую дату из сеанса пользователя;

имеет тип данных DATE .

возвращает текущие дату и время из сеанса пользователя;

имеет тип данных TIMESTAMP WITH TIME ZONE .

возвращает текущие дату и время из сеанса пользователя;

имеет тип данных TIMESTAMP .

Функции CURRENT_DATE и CURRENT_TIMESTAMP возвращают метку текущей даты и текущего времени соответственно. Значения функции CURRENT_DATE имеют тип данных DATE . Значения функции CURRENT_TIMESTAMP имеют тип данных TIMESTAMP WITH TIME ZONE . Возвращаемые значения показывают смещение часового пояса сеанса SQL, в котором выполняются функции.

Смещение часового пояса равно разнице (в часах и минутах) между местным временем и всеобщим скоординированным временем. Тип данных TIMESTAMP WITH TIME ZONE имеет следующий формат:

TIMESTAMP [ (fractional_seconds_precision) ] WITH TIME ZONE

где необязательный параметр fractional_seconds_precision задает количество разрядов в дробной части поля SECOND времени-даты, причем значение этого параметра может быть целым числом в диапазоне от 0 до 9. Значение по умолчанию равно 6.

Функция LOCALTIMESTAMP возвращает текущие дату и время в часовом поясе сеанса. Разница между функциями LOCALTIMESTAMP и CURRENT_TIMESTAMP заключается в том, что функция LOCALTIMESTAMP возвращает значение TIMESTAMP , тогда как функция CURRENT_TIMESTAMP возвращает значение TIMESTAMP WITH TIME ZONE .

Эти функции зависят от параметра поддержки национального языка NLS – то есть результаты будут представляться в форматах календаря, даты и времени текущего параметра NLS.

Примечание . Функция SYSDATE возвращает текущие дату и время как тип данных DATE . Порядок использования функции SYSDATE излагается в блоге Oracle Database 11g: SQL Fundamentals I (База данных Oracle 11g: основы SQL I).

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL