Skip to content

dateadd(unit, value, date)

Описание

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

Параметры

  • unit: str - единица измерения интервала ('year', 'month', 'day', 'hour', 'minute', 'second')
  • value: int - количество единиц для добавления
  • date: Column - исходная дата

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

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

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

from pyspark.sql.functions import dateadd, to_date, lit
from pyspark.sql import SparkSession

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

# Создаем DataFrame с датами
data = [
    ("2023-01-01",),
    ("2023-02-15",),
    ("2023-12-31",)
]
df = spark.createDataFrame(data, ["date"])

# Преобразуем строки в даты
df = df.withColumn("date", to_date("date"))

# Добавляем различные интервалы
df = df.withColumn("next_month", dateadd("month", 1, "date"))
df = df.withColumn("next_year", dateadd("year", 1, "date"))
df = df.withColumn("next_week", dateadd("day", 7, "date"))
df.show(truncate=False)

# Результат:
# +----------+----------+----------+----------+
# |date      |next_month|next_year |next_week |
# +----------+----------+----------+----------+
# |2023-01-01|2023-02-01|2024-01-01|2023-01-08|
# |2023-02-15|2023-03-15|2024-02-15|2023-02-22|
# |2023-12-31|2024-01-31|2024-12-31|2024-01-07|
# +----------+----------+----------+----------+

Примечания

  • Возвращает NULL, если дата NULL
  • Поддерживает отрицательные значения для вычитания интервалов
  • Полезно для:
  • Вычисления будущих дат
  • Определения сроков
  • Планирования событий
  • Связанные функции:
  • date_sub() - вычитание интервала
  • add_months() - добавление месяцев
  • next_day() - следующий день недели