Skip to content

timestampadd(unit, interval, timestamp)

Описание

Функция timestampadd() добавляет указанный интервал времени к временной метке.

Параметры

  • unit: Column - единица измерения времени (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND)
  • interval: Column - количество единиц для добавления
  • timestamp: Column - временная метка, к которой добавляется интервал

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

Column - новая временная метка после добавления интервала

Пример использования

from pyspark.sql.functions import timestampadd, lit, to_timestamp
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("timestampadd_example").getOrCreate()

# Создаем DataFrame с временными метками
data = [
    ("2023-01-01 00:00:00",),
    ("2023-12-31 23:59:59",)
]
df = spark.createDataFrame(data, ["timestamp"])

# Добавляем различные интервалы
result = df.withColumn(
    "next_year",
    timestampadd(lit("YEAR"), lit(1), to_timestamp("timestamp"))
).withColumn(
    "next_month",
    timestampadd(lit("MONTH"), lit(1), to_timestamp("timestamp"))
).withColumn(
    "next_day",
    timestampadd(lit("DAY"), lit(1), to_timestamp("timestamp"))
)
result.show(truncate=False)

# Результат:
# +-------------------+-------------------+-------------------+-------------------+
# |timestamp          |next_year          |next_month         |next_day           |
# +-------------------+-------------------+-------------------+-------------------+
# |2023-01-01 00:00:00|2024-01-01 00:00:00|2023-02-01 00:00:00|2023-01-02 00:00:00|
# |2023-12-31 23:59:59|2024-12-31 23:59:59|2024-01-31 23:59:59|2024-01-01 23:59:59|
# +-------------------+-------------------+-------------------+-------------------+

Примечания

  • Возвращает NULL, если любой из аргументов NULL
  • Поддерживает различные единицы измерения времени
  • Полезно для:
  • Добавления временных интервалов
  • Вычисления будущих дат
  • Создания временных рядов
  • Связанные функции:
  • timestampdiff() - разница между временными метками
  • date_add() - добавление дней к дате