如何使用 CONVERT() 在 SQL Server 中将日期/时间值转换为字符串
使用 SQL Server 时,可以使用该函数将日期/时间值转换为字符串。此函数允许您在不同的数据类型之间进行转换。CONVERT()
在本文中,我们将在各种日期/时间数据类型之间转换为 or 字符串。varchar``nvarchar
此函数的优点之一是它允许您指定返回日期的样式。例如,您可以指定它是否返回为 mm/dd/yyyy、yyyy.mm.dd、mon dd、yyyy 等。您还可以指定是否返回时间组件及其样式。
语法
首先,以下是官方语法:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
这些参数定义如下:
expression
任何有效的表达式。
data_type
目标数据类型。这包括 xml、bigint 和 sql_variant。不能使用别名数据类型。
length
一个可选整数,它指定目标数据类型的长度。默认值为 。30
style
一个整数表达式,它指定函数将如何转换。对于 NULL 的样式值,返回 NULL。 确定范围。CONVERT()expressiondata_type
基本示例
在这个例子中,我们声明一个变量并从函数中赋值。然后我们返回该值,并将该值转换为并返回:GETDATE()``varchar
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar, @date) AS Converted;
输出:
+-------------------------+---------------------+
| Original | Converted |
|-------------------------+---------------------|
| 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM |
+-------------------------+---------------------+返回数据类型的默认长度是 ,所以即使我们只指定了 ,它也会以 .30``varchar``varchar(30)
在此示例中,我们没有提供第三个参数来指示我们希望它返回的样式。因此,它已使用日期时间和****小日期时间数据类型的默认样式进行转换,即 or(更多关于下面的样式)。0``100
指定样式
您可以使用第三个参数来指定返回值将采用的样式:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 102) AS Converted;
输出:
+-------------------------+-------------+
| Original | Converted |
|-------------------------+-------------|
| 2018-06-07 03:42:33.840 | 2018.06.07 |
+-------------------------+-------------+在此示例中,我们指定了一个样式 ,这是用于显示具有四位年份组件的日期的 ANSI 标准。102
要将其更改为具有两位数年份的 ANSI 格式,我们可以使用以下样式:2
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 2) AS Converted;
输出:
+-------------------------+-------------+
| Original | Converted |
|-------------------------+-------------|
| 2018-06-07 03:44:52.433 | 18.06.07 |
+-------------------------+-------------+您可以在 SQL Server 中查看有关 CONVERT() 的更多示例,从日期/时间到字符串示例。