跳到主要内容

WEEK_FLOOR

描述

将日期时间值向下舍入到最接近的指定周间隔。如果提供了起始时间(origin),则使用该时间作为计算间隔的参考点。

语法

WEEK_FLOOR(<datetime>)
WEEK_FLOOR(<datetime>, <origin>)
WEEK_FLOOR(<datetime>, <period>)
WEEK_FLOOR(<datetime>, <period>, <origin>)

参数

参数说明
<datetime>要向下舍入的日期时间值,类型为 DATETIME 或 DATETIMEV2
<period>周间隔值,类型为 INT,表示每个间隔的周数
<origin>间隔的起始点,类型为 DATETIME 或 DATETIMEV2;默认为 0001-01-01 00:00:00

返回值

返回类型为 DATETIME,表示向下舍入后的日期时间值。结果的时间部分将被设置为 00:00:00。

注意:

  • 如果未指定周期,则默认为 1 周间隔。
  • 周期必须是正整数。
  • 结果总是向下舍入到过去的时间。
  • 返回值的时间部分始终设置为 00:00:00。

举例

SELECT WEEK_FLOOR('2023-07-13 22:28:18', 2);
+------------------------------------------------------------+
| week_floor(cast('2023-07-13 22:28:18' as DATETIMEV2(0)), 2) |
+------------------------------------------------------------+
| 2023-07-03 00:00:00 |
+------------------------------------------------------------+