SQL DATE_BUCKET() 函数
SQL 的 DATE_BUCKET() 函数可以将数据分组成对应于固定时间段的组。根据函数提供的参数,它返回标记每个日期桶开始的日期时间值。
正如其名称所示,Date Bucket 函数计算具有单个定义大小的日期桶。如果提供了日期和桶大小,函数将返回包含该日期的桶的起始日期。
语法
SQL DATE_BUCKET() 函数的语法如下 –
参数
此函数接受四个参数。以下是详细讨论:
- datepart - 与数字一起使用的日期部分。例如,年、分钟、小时等。
-
number - 一个整数,用于决定与datepart参数组合的桶的宽度。它应该是一个正整数值,因为它代表日期部分桶的宽度,从原始时间起计算。
-
date - DATE_BUCKET接受一个表达式、列表达式或用户定义变量作为日期,如果它们解析为以下数据类型之一,如date、datetime、datetime2、datetimeoffset、smalldatetime、time。
-
origin - 原始数据类型应与日期参数的数据类型匹配。如果没有为函数指定origin值,DATE_BUCKET将使用默认原始日期值。
示例
让我们来看一个SQL DATE_BUCKET()函数的例子,其中宽度为1天,使用以下查询:
输出
当我们执行上述查询时,输出如下:
示例
以下是另一个场景,我们将使用以下查询按顺序将参数递增为2、3、4。
输出
当查询执行时,它将生成如下所示的输出-
示例
在以下示例中,我们将设置一个7天宽度,但是在@date和@origin之间只有5天剩余,让我们通过使用以下查询来观察结果−
输出
在执行上述查询时,输出如下所示−
示例
让我们看另一种情景,我们使用了7天的宽度,并增加了两个日期之间的间隔,并通过以下查询来检查结果 –
输出
当查询被执行时,将生成以下输出 –
示例
让我们看另一个例子,在这个例子中,我们将使用用户定义的变量作为数字、日期的参数,并通过运行以下查询来检查结果:
输出
上面查询的输出结果如下所示 –
示例
在下面的例子中,我们使用SYSDATETIME()函数来获取当前日期,使用以下查询语句:
输出
当查询被执行时,它将生成如下所示的输出 –
示例
这是另一个场景,我们在查询中使用SYSDATETIME()和数值表达式(07/2)作为数值和日期的参数。
输出
在运行以上查询时,将生成以下输出:
示例
考虑下面的示例,我们将使用非默认的原始值通过以下查询来生成日期桶(date_bucket)−
输出
运行上述查询,将生成如下输出: