Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция
Область применения:
Databricks SQL
Databricks Runtime
Создает метку времени на основе полей year, month, day, hour, min, sec и timezone.
Синтаксис
make_timestamp(year, month, day, hour, min, sec [, timezone] )
make_timestamp(date [, time [, timezone]] )
Аргументы
-
year: выражение INTEGER, определяющее значение от 1 до 9999. -
month: выражение INTEGER, определяющее значение от 1 (январь) до 12 (декабрь). -
day: выражение INTEGER, определяющее значение от 1 до 31. -
hour: выражение INTEGER, определяющее значение в диапазоне от 0 до 23. -
min: выражение INTEGER, определяющее значение в диапазоне от 0 до 59. -
sec: числовое выражение, определяющее значение в диапазоне от 0 до 60. -
date: выражение DATE , предоставляющее поля года, месяца и дня. -
time: необязательное выражение TIME , предоставляющее часы, минуты и второе поля. Значение по умолчанию,00:00:00если опущено. -
timezone: необязательное выражение STRING, определяющее допустимую строку часового пояса. Пример: CET, UTC.
Возвраты
Таймштамп.
В Databricks SQL, если какой-либо из аргументов выходит за пределы, результатом является NULL.
В Databricks Runtime, если любой из аргументов не ограничен, Azure Databricks вызывает DATETIME_FIELD_OUT_OF_BOUNDS если только spark.sql.ansi.enabledfalse, в этом случае функция возвращает NULL.
Если параметр sec имеет значение 60, он интерпретируется как 0 и к результату добавляется одна минута.
Если sec имеет дробное значение, которое не может быть представлено в микросекундах точности, Azure Databricks вызывает INVALID_FRACTION_OF_SECOND.
Распространенные условия ошибки
Примеры
> SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887);
2014-12-28 06:30:45.887
> SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887, 'CET');
2014-12-27 21:30:45.887
> SELECT make_timestamp(2019, 6, 30, 23, 59, 60);
2019-07-01 00:00:00
> SELECT make_timestamp(2019, 13, 1, 10, 11, 12, 'PST');
NULL
> SELECT make_timestamp(NULL, 7, 22, 15, 30, 0);
NULL
> SELECT make_timestamp(DATE'2014-12-28', TIME'06:30:45.887');
2014-12-28 06:30:45.887
> SELECT make_timestamp(DATE'2014-12-28', TIME'06:30:45.887', 'CET');
2014-12-27 21:30:45.887
> SELECT make_timestamp(DATE'2014-12-28');
2014-12-28 00:00:00
-- In DBR with ANSI mode, out-of-bounds fields raise an error.
> SELECT make_timestamp(2024, 13, 1, 0, 0, 0);
Error: DATETIME_FIELD_OUT_OF_BOUNDS