日期时间计算#

group datetime_compute

枚举

enum class rounding_frequency : int32_t#

datetime 舍入函数 ceil、floor、round 支持的固定频率。

值:

enumerator DAY#
enumerator HOUR#
enumerator MINUTE#
enumerator SECOND#
enumerator MILLISECOND#
enumerator MICROSECOND#
enumerator NANOSECOND#

函数

std::unique_ptr<cudf::column> last_day_of_month(cudf::column_view const &column, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

计算日期时间类型中的月份的最后一天,并返回一个TIMESTAMP_DAYS cudf::column

Parameters:
  • columncudf::column_view 输入日期时间值的列视图

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Throws:

cudf::logic_error – 如果输入列的数据类型不是TIMESTAMP

Returns:

cudf::column 包含每月的最后一天作为 TIMESTAMP_DAYS

std::unique_ptr<cudf::column> day_of_year(cudf::column_view const &column, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

计算从日期时间开始的年中的天数,并返回一个int16_t cudf::column。该值在[1, {365-366}]之间。

Parameters:
  • columncudf::column_view 输入日期时间值的列视图

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Throws:

cudf::logic_error – 如果输入列的数据类型不是TIMESTAMP

Returns:

cudf::column 数据类型为 INT16,包含自年初以来的天数

std::unique_ptr<cudf::column> add_calendrical_months(cudf::column_view const &timestamps, cudf::column_view const &months, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从日期时间类型中添加或减去若干个月,并返回一个与输入timestamps列类型相同的时间戳列。

对于给定的行,如果timestampsmonths列的值为空,则该行的输出为空。此方法在适用的情况下保留输入时间和日期。如果新日期对该月份无效,则日期将向下舍入到该年的该月的最后一天。

Example:
timestamps = [5/31/20 08:00:00, 5/31/20 00:00:00, 5/31/20 13:00:00, 5/31/20 23:00:00,
              6/30/20 00:00:01, 6/30/20 14:12:13]
months     = [1               , -1              , -3              , -15             ,
              -1              , 1]
r = add_calendrical_months(timestamp_column, months_column)
r is [6/30/20 08:00:00, 4/30/20 00:00:00, 2/29/20 13:00:00, 2/28/19 23:00:00,
      5/30/20 00:00:01, 7/30/20 14:12:13]
Throws:
  • cudf::logic_error – 如果 timestamps 数据类型不是 TIMESTAMP 或者如果 months 数据类型不是 INT16 或 INT32。

  • cudf::logic_error – 如果 timestamps 列的大小不等于 months 列的大小。

Parameters:
  • timestampscudf::column_view 时间戳类型

  • monthscudf::column_view 包含要添加的月份数的整数类型列视图

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

cudf::column 包含计算时间戳的时间戳类型

std::unique_ptr<cudf::column> add_calendrical_months(cudf::column_view const &timestamps, cudf::scalar const &months, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从日期时间类型中添加或减去若干个月,并返回一个与输入timestamps列类型相同的时间戳列。

对于给定的行,如果timestamps值为空,则该行的输出为空。一个空的月份标量将导致整个列为空。此方法在适用时保留输入时间和日期。如果新日期对该月份无效,则日期将向下舍入到该年的最后一天。

Example:
timestamps = [5/31/20 08:00:00, 6/30/20 00:00:00, 7/31/20 13:00:00]
months     = -3
output is [2/29/20 08:00:00, 3/30/20 00:00:00, 4/30/20 13:00:00]

timestamps = [4/28/20 04:00:00, 5/30/20 01:00:00, 6/30/20 21:00:00]
months     = 1
output is [5/28/20 04:00:00, 6/30/20 01:00:00, 7/30/20 21:00:00]
Throws:
  • cudf::logic_error – 如果 timestamps 数据类型不是 TIMESTAMP 或者如果 months 数据类型不是 INT16 或 INT32。

  • cudf::logic_error – 如果 timestamps 列的大小不等于 months 列的大小。

Parameters:
  • timestampscudf::column_view 时间戳类型

  • monthscudf::scalar 整数类型的标量,包含要添加的月数

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

cudf::column 包含计算时间戳的时间戳类型

std::unique_ptr<cudf::column> is_leap_year(cudf::column_view const &column, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

检查给定日期的年份是否为闰年。

output[i] == true 如果 column[i] 的年份是闰年 output[i] == false 如果 column[i] 的年份不是闰年 output[i] is null 如果 column[i] 是空值

Parameters:
  • columncudf::column_view 输入日期时间值的列视图

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Throws:

cudf::logic_error – 如果输入列的数据类型不是TIMESTAMP

Returns:

cudf::column 数据类型为 BOOL8 的对应日期的真值

std::unique_ptr<cudf::column> days_in_month(cudf::column_view const &column, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

提取月份中的天数。

output[i] 包含日期 column[i] 所在月份的天数。如果 column[i] 为 null,则 output[i] 也为 null

Throws:

cudf::logic_error – 如果输入列的数据类型不是TIMESTAMP

Parameters:
  • columncudf::column_view 输入日期时间值的列视图

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

cudf::column 数据类型为 INT16,表示对应日期的月份中的天数

std::unique_ptr<cudf::column> extract_quarter(cudf::column_view const &column, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回日期的季度。

output[i] 将是一个来自 {1, 2, 3, 4} 的值,对应于 column[i] 给出的月份季度。如果 column[i] 处的输入行为空,则它将为空。

Throws:

cudf::logic_error – 如果输入列的数据类型不是TIMESTAMP

Parameters:
  • column – 包含日期时间值的输入列

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Returns:

一个INT16类型的列,表示日期所在的季度

std::unique_ptr<cudf::column> ceil_datetimes(cudf::column_view const &column, rounding_frequency freq, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将日期时间向上舍入到给定频率的最接近的倍数。

Parameters:
  • columncudf::column_view 输入日期时间值的列视图

  • freq – rounding_frequency 表示要向上舍入的频率

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Throws:

cudf::logic_error – 如果输入列的数据类型不是TIMESTAMP。

Returns:

cudf::column 与输入列具有相同的日期时间分辨率

std::unique_ptr<cudf::column> floor_datetimes(cudf::column_view const &column, rounding_frequency freq, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将日期时间向下舍入到给定频率的最接近的倍数。

Parameters:
  • columncudf::column_view 输入日期时间值的列视图

  • freq – rounding_frequency 表示要向下舍入的频率

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Throws:

cudf::logic_error – 如果输入列的数据类型不是TIMESTAMP。

Returns:

cudf::column 与输入列具有相同的日期时间分辨率

std::unique_ptr<cudf::column> round_datetimes(cudf::column_view const &column, rounding_frequency freq, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将日期时间四舍五入到给定频率的最接近的倍数。

Parameters:
  • columncudf::column_view 输入日期时间值的列视图

  • freq – rounding_frequency 表示要舍入到的频率

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Throws:

cudf::logic_error – 如果输入列的数据类型不是TIMESTAMP。

Returns:

cudf::column 与输入列具有相同的日期时间分辨率