dateutils 工具类(dbutils工具类)

dateutils 工具类(dbutils工具类)p strong 适用于 strong p

大家好,我是讯享网,很高兴认识大家。



 </nav><p><strong>适用于:</strong> <img src="https://docs.microsoft.com/zh-cn/SQL/includes/media/yes-icon.svg?view=sql-server-ver15" role="presentation" data-linktype="relative-path"> sql Server 2022 (16.x)<img src="https://docs.microsoft.com/zh-cn/SQL/includes/media/yes-icon.svg?view=sql-server-ver15" role="presentation" data-linktype="relative-path"> Azure SQL 数据库 <img src="https://docs.microsoft.com/zh-cn/SQL/includes/media/yes-icon.svg?view=sql-server-ver15" role="presentation" data-linktype="relative-path"> Azure SQL 托管实例<img src="https://docs.microsoft.com/zh-cn/SQL/includes/media/yes-icon.svg?view=sql-server-ver15" role="presentation" data-linktype="relative-path"> Microsoft Fabric <img src="https://docs.microsoft.com/zh-cn/SQL/includes/media/yes-icon.svg?view=sql-server-ver15" role="presentation" data-linktype="relative-path">Warehouse 中的 Microsoft Fabric Warehouse 中的 SQL 分析终结点</p> 

讯享网

函数返回截断到指定日期部分的输入日期。

讯享网

datepart

指定截断的精度。 下表列出 的所有有效 datepart 值,因为它也是输入日期类型的有效部分。

datepart 缩写形式 截断说明 , , , , 截断的方式与 , 截断的方式与 , 截断到一周的第一天。 在 T-SQL 中,一周的第一天由 T-SQL 设置定义。 对于美国英语环境, 默认为 (星期日)。 , 截断到 ISO 周的第一天。 ISO8601 日历系统中一周的第一天是星期一。 ,

date

接受任何表达式、列或用户定义的变量,它们可以解析为任何有效的 T-SQL 日期或时间类型。 有效类型包括:

  • smalldatetime
  • datetime
  • date
  • time
  • datetime2
  • datetimeoffset

不要将 date 参数与 date 数据类型混淆。

还接受可解析为 datetime2(7)的字符串文本(任何字符串类型)。

的返回数据类型是动态的。 返回日期类型与输入日期相同的截断日期(如果适用,还会返回小数位时间刻度相同的截断日期)。 例如,如果向 提供了 datetimeoffset(3) 输入日期,它将返回 datetimeoffset(3)。 如果提供的字符串字面量可以解析为 datetime2(7),则 将返回 datetime2(7)。

毫秒的小数位时间刻度为 3 (),微秒的小数位时间刻度为 6 (),纳米秒的小数位时间刻度为 9 ()。 time、datetime2 和 datetimeoffset 数据类型允许的最大小数位时间刻度为 7 ()。 因此,若要截断到日期部分,小数时间刻度必须至少为 3。 同样,若要截断到日期部分,小数时间刻度必须至少为 6。 不支持 datepart因为 T-SQL 日期类型不支持 9 的小数级时间刻度。

以下示例演示了各种 datepart 选项的使用:

 

结果集如下。

讯享网

以下示例演示如何 将设置与 datepart 配合使用:

 

结果集如下。

讯享网

以下示例演示了 date 参数文本的用法:

 

结果集如下。 所有结果均为 datetime2(7)类型

讯享网

下面的示例说明了 date 参数的用法:

 

结果集如下。

讯享网

表中的 列用作 date 参数的示例 column 自变量:

 

date 参数接受可以解析为 T-SQL 日期类型的任何表达式,或者可以解析为 datetime2(7) 的任何字符串字面量。 表中的 列充当一个假自变量,用于演示如何在表达式中使用 date 参数:

讯享网

如果 datepart 的单位最大精度与输入日期类型相同,则将输入日期截断到此 datepart 将不起作用。

示例 1

 

结果集如下。 输入 日期/时间 和截断 日期 参数相同。

讯享网

示例 2

 

结果集如下。 输入 日期/时间 和截断 日期 参数相同。

讯享网

示例 3:smalldatetime 精度

smalldatetime 仅精确到最接近的分钟,即使它有一个秒钟字段。 因此,将其截断到最接近的分钟或最接近的秒将不起作用。

 

结果集如下。 输入 smalldatetime 值与截断值相同:


讯享网

讯享网

示例 4:datetime 精度

datetime 仅精确到 3.33 毫秒。 因此,将日期时间断为毫秒可能会产生与用户预期不同的结果。 但是,此截断值与内部存储的 datetime 值相同。

 

结果集如下。 截断 日期 与存储 日期相同。 这可能与基于 语句的预期不同。

讯享网

如果 日期 截断尝试回溯到该数据类型支持的最小日期之前的日期,则会引发错误。 此错误仅在使用 datepart 时发生。 使用 datepart 时无法发生,因为所有 T-SQL 日期类型都巧合地使用星期一作为其最小日期。 下面是一个包含相应结果错误消息的示例:

 
讯享网

如果函数或输入日期数据类型不支持使用的 datepart,则会引发错误。 在以下情况下可能会发生此错误:

  1. 使用了不受 支持的 datepart(即 、 或 )
  2. 与 time 相关的 datepart 配合 date 数据类型使用或者与 date 相关的 datepart 配合 time 数据类型使用。 下面是一个包含相应结果错误消息的示例:
     
    讯享网
  3. 日期 部分 需要比数据类型支持的更小数部分时间刻度精度。 有关详细信息,请参阅 分数时间刻度精度。 下面是一个包含相应结果错误消息的示例:
     
    讯享网
  • @@DATEFIRST (Transact-SQL)
  • DATEPART (Transact-SQL)
  • 日期和时间数据类型及函数 (Transact-SQL)

适用于: sql Server 2022 (16.x) Azure SQL 数据库 Azure SQL 托管实例 Microsoft Fabric Warehouse 中的 Microsoft Fabric Warehouse 中的 SQL 分析终结点

函数返回截断到指定日期部分的输入日期。

 

datepart

指定截断的精度。 下表列出 的所有有效 datepart 值,因为它也是输入日期类型的有效部分。

datepart 缩写形式 截断说明 , , , , 截断的方式与 , 截断的方式与 , 截断到一周的第一天。 在 T-SQL 中,一周的第一天由 T-SQL 设置定义。 对于美国英语环境, 默认为 (星期日)。 , 截断到 ISO 周的第一天。 ISO8601 日历系统中一周的第一天是星期一。 ,

date

接受任何表达式、列或用户定义的变量,它们可以解析为任何有效的 T-SQL 日期或时间类型。 有效类型包括:

  • smalldatetime
  • datetime
  • date
  • time
  • datetime2
  • datetimeoffset

不要将 date 参数与 date 数据类型混淆。

还接受可解析为 datetime2(7)的字符串文本(任何字符串类型)。

的返回数据类型是动态的。 返回日期类型与输入日期相同的截断日期(如果适用,还会返回小数位时间刻度相同的截断日期)。 例如,如果向 提供了 datetimeoffset(3) 输入日期,它将返回 datetimeoffset(3)。 如果提供的字符串字面量可以解析为 datetime2(7),则 将返回 datetime2(7)。

毫秒的小数位时间刻度为 3 (),微秒的小数位时间刻度为 6 (),纳米秒的小数位时间刻度为 9 ()。 time、datetime2 和 datetimeoffset 数据类型允许的最大小数位时间刻度为 7 ()。 因此,若要截断到日期部分,小数时间刻度必须至少为 3。 同样,若要截断到日期部分,小数时间刻度必须至少为 6。 不支持 datepart因为 T-SQL 日期类型不支持 9 的小数级时间刻度。

以下示例演示了各种 datepart 选项的使用:

讯享网

结果集如下。

 

以下示例演示如何 将设置与 datepart 配合使用:

讯享网

结果集如下。

 

以下示例演示了 date 参数文本的用法:

讯享网

结果集如下。 所有结果均为 datetime2(7)类型

 

下面的示例说明了 date 参数的用法:

讯享网

结果集如下。

 

表中的 列用作 date 参数的示例 column 自变量:

讯享网

date 参数接受可以解析为 T-SQL 日期类型的任何表达式,或者可以解析为 datetime2(7) 的任何字符串字面量。 表中的 列充当一个假自变量,用于演示如何在表达式中使用 date 参数:

 

如果 datepart 的单位最大精度与输入日期类型相同,则将输入日期截断到此 datepart 将不起作用。

示例 1

讯享网

结果集如下。 输入 日期/时间 和截断 日期 参数相同。

 

示例 2

讯享网

结果集如下。 输入 日期/时间 和截断 日期 参数相同。

 

示例 3:smalldatetime 精度

smalldatetime 仅精确到最接近的分钟,即使它有一个秒钟字段。 因此,将其截断到最接近的分钟或最接近的秒将不起作用。

讯享网

结果集如下。 输入 smalldatetime 值与截断值相同:

 

示例 4:datetime 精度

datetime 仅精确到 3.33 毫秒。 因此,将日期时间断为毫秒可能会产生与用户预期不同的结果。 但是,此截断值与内部存储的 datetime 值相同。

讯享网

结果集如下。 截断 日期 与存储 日期相同。 这可能与基于 语句的预期不同。

 

如果 日期 截断尝试回溯到该数据类型支持的最小日期之前的日期,则会引发错误。 此错误仅在使用 datepart 时发生。 使用 datepart 时无法发生,因为所有 T-SQL 日期类型都巧合地使用星期一作为其最小日期。 下面是一个包含相应结果错误消息的示例:

讯享网
 

如果函数或输入日期数据类型不支持使用的 datepart,则会引发错误。 在以下情况下可能会发生此错误:

  1. 使用了不受 支持的 datepart(即 、 或 )
  2. 与 time 相关的 datepart 配合 date 数据类型使用或者与 date 相关的 datepart 配合 time 数据类型使用。 下面是一个包含相应结果错误消息的示例:
    讯享网
     
  3. 日期 部分 需要比数据类型支持的更小数部分时间刻度精度。 有关详细信息,请参阅 分数时间刻度精度。 下面是一个包含相应结果错误消息的示例:
    讯享网
     

  • @@DATEFIRST (Transact-SQL)
  • DATEPART (Transact-SQL)
  • 日期和时间数据类型及函数 (Transact-SQL)


小讯
上一篇 2025-06-03 07:08
下一篇 2025-04-26 18:54

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/151385.html