SQL Server 中的标量函数:日期和时间函数详解

在深入探讨主题之前,首先需要了解什么是函数,然后研究SQL Server中标量函数的细节。在SQL Server中,函数是一组用于执行特定操作的T-SQL语句。SQL Server提供了多种函数,如分析函数、标量函数、聚合函数等。

当想要对单个值进行操作时,就会使用到SQL Server中的标量函数。SQL Server的标量函数可以接收一个或多个参数作为输入,并总是返回单个值。使用标量函数有助于简化SQL Server中的数据查询。根据它们执行的操作,标量函数可以分为多个类别,如JSON函数、游标函数、日期和时间函数、逻辑函数等。

本文将研究标量函数的一个类别——日期和时间函数。日期和时间函数用于对日期和时间输入值执行操作,并返回字符串、数字或日期和时间值。这些函数用于执行特定类型的操作,例如返回当前日期和时间、修改日期和时间值、返回两个日期之间的差异、验证日期和时间值等。

让讨论SQL Server中可用的日期和时间函数类型——

SQL Server 日期和时间函数

SQL Server提供了多种日期和时间函数,如SYSUTCDATETIME()、CURRENT_TIMESTAMP、GETDATE()、DAY()、MONTH()、YEAR()、DATEFROMPARTS()、DATETIME2FROMPARTS()、TIMEFROMPARTS()、DATEDIFF()、DATEADD()、ISDATE()等。这些函数用于对日期和时间输入执行操作。

此函数用于返回运行SQL Server实例的计算机上的UTC格式的日期和时间值。该函数返回datetime2(7)值作为结果。

SELECT SYSUTCDATETIME() AS [SYSUTCDATETIME]

此函数用于返回包含运行SQL Server实例的计算机上的日期和时间值的datetime值。该函数返回datetime值作为结果,不包括时区偏移量。

SELECT CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP]

此函数用于返回包含运行SQL Server实例的计算机上的日期和时间值的datetime值。该函数返回datetime值作为结果,不包括时区偏移量。CURRENT_TIMESTAMP和GETDATE()的区别在于,CURRENT_TIMESTAMP是ANSI SQL函数,而GETDATE()是相同功能的T-SQL版本。

SELECT GETDATE() AS [GETDATE]

此函数用于返回指定日期的“日”部分所代表的整数。DAY函数接受日期作为参数,可以是datetime、date、datetime2、time和小datetime类型。用户可以将列表达式、表达式、字符串字面量或用户定义的变量作为参数传递给DAY函数。

SELECT DAY('2022-09-02') AS [DAY] SELECT DAY('2022-09-12 01:01:01.2234567') AS [DAY]

此函数用于返回指定日期的“月”部分所代表的整数。MONTH函数接受日期作为参数,可以是datetimeoffset、time、date、datetime、smalldatetime或datetime2类型。用户可以将列表达式、表达式、字符串字面量或用户定义的变量作为参数传递给MONTH函数。

SELECT MONTH('2022-10-02') AS [MONTH] SELECT MONTH('2022-01-12 01:01:01.2234567') AS [MONTH]

此函数用于返回指定日期的“年”部分所代表的整数。YEAR函数接受日期作为参数,可以是datetimeoffset、time、date、datetime、smalldatetime或datetime2类型。用户可以将列表达式、表达式、字符串字面量或用户定义的变量作为参数传递给YEAR函数。

SELECT YEAR('1998-10-02') AS [YEAR] SELECT YEAR('2022-01-12 01:01:01.2234567') AS [YEAR]

此函数用于返回指定年、月、日的日期。DATEFROMPARTS函数接受年(指定年份)、月(指定月份)和日(指定日期)作为必需参数。如果提供了无效的年、月或日,则DATEFROMPARTS函数将引发错误。如果至少有一个必需参数的值为null,则DATEFROMPARTS函数将返回null。

SELECT DATEFROMPARTS(2012, 09, 15) AS Result

此函数用于返回指定日期和时间的日期,以及指定的精度。DATETIME2FROMPARTS函数接受年(指定年份)、月(指定月份)、日(指定日期)、小时(指定小时)、分钟(指定分钟)、秒(指定秒)、分数(指定分数秒值)和精度(指定DATETIME2FROMPARTS函数返回的datetime2值的精度)作为必需参数。如果提供了无效的必需参数,则DATETIME2FROMPARTS函数将引发错误。如果至少有一个必需参数的值为null,则DATETIME2FROMPARTS函数将返回null。但是,如果精度参数的值为null,则DATETIME2FROMPARTS函数会引发错误。

SELECT DATETIME2FROMPARTS(2022, 09, 15, 12, 34, 56, 7, 2) AS Result SELECT DATEDIFF(MONTH, '2010-08-01', '2022-02-28')
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485