如何将字符串转换为日期格式:使用SQL Server的日期转换函数

发布时间:2023-05-17

一、日期转换函数的概述

在 SQL Server 中,日期转换函数可以帮助开发者将字符串转换为日期格式,以便于进行后续的数据操作。SQL Server 提供了多个日期转换函数,如 CONVERTCAST 等,其中 CONVERT 函数的使用最为广泛。 CONVERT 函数的语法如下:

CONVERT (data_type[(length)], expression [, style])

参数说明:

  • data_type:要转换到的目标数据类型,如 datedatetimesmalldatetime 等。
  • length:目标数据类型的长度,仅在部分数据类型需要指定。如 datetime2 需要指定 length 表示小数位的精度。
  • expression:要转换的表达式或者列名。
  • style:日期格式代码,可选参数。

二、日期格式代码的介绍

为了将字符串正确转换为日期格式,需要使用正确的日期格式代码。下面是 SQL Server 支持的日期格式代码:

格式代码 格式 例子
100 mon dd yyyy hh:miAM (或 PM) Oct 21 2022 01:14PM
101 mm/dd/yyyy 10/21/2022
102 yyyy.mm.dd 2022.10.21
103 dd/mm/yyyy 21/10/2022
104 dd.mm.yyyy 21.10.2022
105 dd-mm-yyyy 21-10-2022
106 dd mon yyyy 21 Oct 2022
107 mon dd, yyyy Oct 21, 2022
108 hh:mi:ss 01:14:23
109 mon dd yyyy hh:mi:ss:mmmAM (或 PM) Oct 21 2022 01:14:23:000PM
110 mm-dd-yyyy 10-21-2022
111 yyyy/mm/dd 2022/10/21
112 yyyymmdd 20221021
113 dd mon yyyy hh:mi:ss:mmm(24h) 21 Oct 2022 13:14:23:000
114 hh:mi:ss:mmm(24h) 13:14:23:000

三、使用 CONVERT 函数进行日期转换

使用 CONVERT 函数将字符串转换为日期可以使用下面的示例代码:

DECLARE @date_string varchar(100)
SET @date_string = '2022-10-21'
SELECT CONVERT(date, @date_string, 120) AS converted_date

其中,date 表示要转换到的目标数据类型,@date_string 为要转换的字符串,120 为日期格式代码,在这个例子中表示 "yyyy-mm-dd" 格式。 如果目标数据类型在表达式中已经指定,则可以省略第一个参数,如:

DECLARE @date_string varchar(100)
SET @date_string = '2022-10-21'
SELECT CONVERT(date, @date_string) AS converted_date

四、使用 TRY_CONVERT 函数进行日期转换

在一些情况下,要转换的字符串可能不是一个有效的日期格式,那么 CONVERT 函数将会失败并抛出一个错误。为了避免这种情况,可以使用 TRY_CONVERT 函数。

DECLARE @date_string varchar(100)
SET @date_string = '2022/10/21'
SELECT TRY_CONVERT(date, @date_string, 120) AS converted_date

CONVERT 函数类似,TRY_CONVERT 函数也可以省略第一个参数。

五、小结

本文介绍了 SQL Server 中的日期转换函数 CONVERTTRY_CONVERT,以及日期格式代码的使用。通过使用这些函数和代码,可以将字符串正确地转换为日期格式,使得后续的数据操作更加准确和可靠。