如何使用 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() 的更多示例,从日期/时间到字符串示例。