SQL Server 日期函数2025年3月17日 | 阅读 10 分钟 日期和时间函数使我们能够有效地处理日期和时间数据。在处理数据库时,插入数据到表中时,日期和时间函数的格式应该匹配。在本文中,我们将深入探讨日期和时间函数。SQL Server 有许多内置函数,可以帮助我们从大量数据中筛选出有用的数据。它还有助于设计和维护大型数据库。 在 SQL Server 中,我们可以使用各种数据类型作为表中的日期。最流行的日期格式是 'YYYY-MM-DD' 和 'DD-MM-YYYYY.'。在某些情况下,我们还需要在数据库中保存日期和时间。在这些情况下,我们需要工具来单独访问时间和日期。这时 SQL Server 的时间和函数就很有用。还建议初学者在数据库中使用日期或时间时要谨慎,因为如果处理不当,很容易引发异常。 SQL Server 中的日期和时间格式以下是 SQL Server 中使用的日期和时间格式 DATE: YYYY-MM-DD DATETIME: YYYY-MM-DD HH: MI: SS TIMESTAMP: YYYY-MM-DD HH: MI: SS YEAR: YYYY 或 YY 注意:在数据库中创建新表时,我们会为每个列选择日期数据类型。为什么我们需要日期和时间函数?在 SQL Server 中,我们有各种日期和时间函数。这些函数是为了确保在创建和访问数据库时,日期和时间模块是可访问的。 SQL Server 根据以下类型对日期和时间函数进行分类
返回系统日期和时间所有系统日期和时间值均来自安装了 SQL Server 的计算机的操作系统。下表解释了所有系统日期和时间函数
让我们看一些系统日期和时间函数的例子。 示例 1: 此示例使用 CURRENT_TIMESTAMP() 函数查看系统的当前日期和时间,而不考虑输出中的时区。 执行此语句将返回以下输出 ![]() 示例 2: 此示例使用 GETDATE() 函数查看 SQL Server 运行所在的系统的当前日期和时间。 执行此语句将返回以下输出 ![]() 示例 3: 此示例使用 GETUTCDATE() 函数以整数形式查看基于 UTC 时间戳的系统当前日期和时间。 执行此语句将返回以下输出 ![]() 示例 4: 此示例使用 SYSDATETIME() 函数以毫秒为单位查看具有更高小数精度的系统当前日期和时间。 执行此语句将返回以下输出 ![]() 示例 5: 此示例使用 SYSUTCDATETIME() 函数以整数形式查看基于 UTC 时间戳的系统当前日期和时间。 执行此语句将返回以下输出 ![]() 示例 6: 此示例使用 SYSDATETIMEOFFSET() 函数查看带有时区偏移的系统当前日期和时间。 执行此语句将返回以下输出 ![]() 返回日期和时间部分下表中列出的日期和时间函数用于以天、月、年、小时、分钟、秒、周、纳秒等为单位提取日期和时间的一部分。
以下示例将实际演示这些日期函数。 示例 1: 此示例使用 DATENAME() 函数提取日期部分,如天、月或年。 执行该语句将返回以下输出。在这里,我们看到该函数将日期提取为三个部分:天、月和年,形式为字符串。 ![]() 示例 2: 此示例使用 DATEPART() 函数以整数形式提取日期部分,这使其与 DATENAME() 函数不同。 执行该语句将返回以下输出。在这里,我们看到该函数将日期以整数形式提取为三个部分:天、月和年。 ![]() 示例 3: 此示例使用 YEAR() 函数仅提取输入日期的年份部分。 执行该语句将仅以整数形式返回日期的年份部分。 ![]() 示例 4: 此示例使用 MONTH() 函数仅提取输入日期的月份部分。 执行该语句将仅以整数形式返回日期的月份部分。 ![]() 示例 5: 此示例使用 DAY() 函数仅提取输入日期的天部分。 执行该语句将仅以整数形式返回日期的天部分。 ![]() 返回日期和时间差值下表中列出的函数用于提取日期之间的差异。
示例: 此示例使用 DATEDIFF() 函数并显示起始日期表达式和结束日期表达式之间的差异。 执行该语句将返回以下输出 ![]() 返回修改日期和时间值我们可以使用以下一组 SQL Server 日期函数来操作或更改系统/输入时间戳值。
以下示例将实际演示这些日期函数。 示例 1: 此示例使用 DATEADD() 函数,在向日期部分添加整数值后返回新的日期值。 执行此语句将返回以下输出。在这里,我们看到函数首先在 result1 中添加一个秒值,然后在 result2 中添加一个天值以显示下一个日期。 ![]() 示例 2: 此示例使用 EOMONTH() 函数并返回指定日期的月份的最后一天。 执行此语句将返回以下输出。在这里,我们看到即使我们传入闰年日期,该函数仍返回正确的结果。 ![]() 示例 3: 此示例使用 SWITCHOFFSET() 函数将存储的时区偏移值更改为新的时区偏移。 首先,我们将创建一个包含 DATETIMEOFFSET 列的表 'testdate',并使用以下语句向其中插入一个值。 如果用 SELECT 语句验证,它会在表中显示 '2020-09-20 07:45:50.7134500 -05:00' 值。现在,我们将使用 SWITCHOFFSET() 函数将时区切换到 -8:00。 我们将获得以下输出 ![]() 示例 4: 此示例使用 TODATETIMEOFFSET() 函数,在 DATETIME2 值之后,根据指定时区以本地时间返回新的日期值。 执行此语句将返回以下输出。在这里,我们看到第一个结果将日期和时间的时区偏移更改为 -08:00。第二个结果将当前时区更改为 -180 分钟。 ![]() 从其部分构造日期和时间我们可以使用 SQL Server 中的以下日期函数从其部分构造日期和时间。
让我们通过示例来实际解释这些函数。 示例 1: 此示例使用 DATEFROMPARTS() 函数从日、月和年值构造日期。 执行此语句将显示以下输出。在这里,我们看到 result1 返回了日期,但 result2 返回 NULL,因为月份参数为 NULL。 ![]() 示例 2: 此示例使用 DATETIME2FROMPARTS() 函数从日、月、年、小时、分钟、秒、小数和精度值构造 datetime2 值。 执行此语句将显示以下输出。在这里,我们看到 result1 返回了 datetime 值,但 result2 返回 NULL,因为月份参数为 NULL。 ![]() 示例 3: 示例 3: 此示例使用 DATETIMEOFFSETFROMPARTS() 函数从日期和时间值构造 datetimeoffset 值。 执行此语句将显示以下输出。在这里,我们看到 result1 返回了 datetimeoffset 值,但 result2 返回 NULL,因为年份参数为 NULL。 ![]() 示例 4: 此示例使用 TIMEFROMPARTS() 函数为指定的时间和精度值构造时间值。 执行此语句将显示以下输出。在这里,我们看到 result1 返回不带小数的时间值,但 result2 返回带小数的时间值。由于指定的精度为 2,因此小数部分的值计算为 5/100 或 0.05 秒。 ![]() 日期和时间值验证我们可以使用以下日期函数来检查指定的日期格式在 SQL Server 中是否有效。有效的日期格式是 yyyy-mm-dd。
示例: 此示例使用 ISDATE() 函数检查输入的日期是否遵循标准格式。如果日期有效,则函数返回 1。如果日期格式不同,则函数返回 0。 执行此语句将显示以下输出。在这里,我们看到 result1 代表有效的日期数据,因为它返回 1。result2 代表无效日期,因为它返回 0。 ![]() 这是另一个检查有效 datetime 表达式的示例。 这是输出 ![]() 设置或返回会话格式函数我们可以使用以下函数为特定会话设置日期和时间值。
以下示例将实际解释这些函数。 示例 1: 此函数使用 @@DATEFIRST() 函数指定星期中的第一天。 执行此语句将设置 星期二 为一周中的第一天。 ![]() 示例 2: 此函数使用 DATEFORMAT() 函数指定日期的顺序。 执行此语句将返回以下输出。 ![]() 结论此示例将解释日期和时间函数的完整概述及示例。这些函数在 SQL Server 中是预定义的,可用于在查询中提取所需的任何详细信息。 下一主题SQL Server 数学函数 |
我们请求您订阅我们的新闻通讯以获取最新更新。