SQL CONVERT() 函数

SQL CONVERT() 函数

SQL CONVERT() 函数将一个表达式从一种数据类型转换为另一种数据类型。如果转换成功,该函数返回转换后的值;否则,会产生一个错误。

除了 style 选项外,CONVERT() 函数与 CAST() 函数等效。尽管 CAST() 是 ANSI SQL 方法的组成部分,可在许多其他数据库中使用,但 CONVERT() 是 SQL Server 特有的,不适用于其他数据库。

语法

以下是 SQL CONVERT() 函数的语法:

CONVERT(data_type(length), expression, style)

参数

此函数只接受四个参数。具体如下所述:

  • data_type − 需要转换的有效表达式。

  • length − 结果数据类型的长度,可选。

  • expression − 要将表达式转换为的数据类型。

  • style − 用于结果的格式,可选。

样式值可以是以下任意值,让我们依次看一下:

日期和时间 的转换样式 –

样式 标准 结果
100 datetime和smalldatetime 月 日 年 时:分AM(或PM)
101 美国 月/日/年
102 ANSI 年.月.日
103 英式/法式 日/月/年
104 德国 日.月.年
105 -- 日 月 年
106 -- 月 日, 年
107 -- 月 日, 年
108 -- hh:mi:ss
109 默认 + 毫秒 月-日-年 hh:mi:ss:mmmAM(或PM)
110 美国 月-日-年
111 日本 年/月/日
112 ISO 年月日
113 欧洲默认 + 毫秒 日 月 年 hh:mi:ss:mmm(24小时制)
114 -- hh:mi:ss:mmm(24小时制)
120 ODBC规范 年-月-日 小时:分钟:秒(24小时制)
121 ODBC规范(带毫秒)适用于时间、日期、datetime2和datetimeoffset yyyy-mm-dd hh:mi:ss.mmm (24h)
126 ISO8601 yyyy-mm-ddThh:mi:ss.mmm (无空格)
127 ISO8601 yyyy-MM-ddThh:mm:ss.fffZ (无空格)

浮点数和实数 转换的样式 –

风格 结果
0 最多6位数。当适用时,使用科学计数法。
1 8位数。始终使用科学计数法。
2 16位数。始终使用科学计数法。

货币和小货币 转换的风格为−

样式 结果
0 无逗号和两位小数。示例:28000.54。
1 有逗号和两位小数。示例:24,222.63。
2 无逗号和四位小数。示例:12345.6789。
126 当转换为char(n)或varchar(n)时等同于2。

示例

让我们尝试使用以下查询将十进制转换为整数−

SELECT CONVERT(int, 123.34) AS Result;

输出

当我们执行上述查询时,输出如下所示:

+--------------------------+
|                   Result |
+--------------------------+
|                      123 |
+--------------------------+

示例

让我们使用以下查询将表达式转换为varchar类型-

SELECT CONVERT(varchar, 12344.34) AS varchar;

输出

执行以上查询时,输出显示如下 –

+--------------------------+
|                  varchar |
+--------------------------+
|                12344.34  |
+--------------------------+

示例

在下面的示例中,我们将使用以下查询将表达式转换为日期时间。

SELECT CONVERT(datetime, '2023-02-23') AS datetime;

输出

上述查询的输出如下所示−

+--------------------------+
|                 datetime |
+--------------------------+
|  2023-02-23 00:00:00.000 |
+--------------------------+

示例

看下面的示例,我们将使用以下查询将浮点数转换为整数。

DECLARE @FLOAT AS Float
SET @FLOAT = 12344.567 
SELECT CONVERT(int, @FLOAT) AS ConvertedResult;

输出

如果我们编译并运行上面的查询,结果如下所示 –

+------------------------------------+
|                     ConvertedResult|
+------------------------------------+
|                              12344 |
+------------------------------------+

示例

让我们看看另一种情况,我们将使用以下查询将浮点值更改为varchar –

DECLARE @FLOAT AS Float
SET @FLOAT = 1235.5687
SELECT CONVERT(varchar, @FLOAT) AS ConvertedResult;

输出

执行以上查询后,将生成如下所示的输出结果:

+------------------------------------+
|                     ConvertedResult|
+------------------------------------+
|                            1235.57 |
+------------------------------------+

示例

让我们考虑另一个示例,我们要通过运行以下查询将货币转换为varchar类型。

DECLARE @MONEY AS MONEY=$1234.56
SELECT CONVERT(Varchar,@MONEY,0) AS Style_0, 
CONVERT(Varchar,@MONEY,1) AS Style_1;

输出

查询执行后,将生成如下所示的输出结果 –

+-----------------------------------+-------------------------------------+
|                  Style_0          |                    Style_1          |
+-----------------------------------+-------------------------------------+
|                  1234.56          |                    1,234.56         |
+-----------------------------------+-------------------------------------+

示例

在下面的示例中,我们将使用CONVERT()函数和GETDATE()函数来检索当前日期和时间,使用以下查询语句:

SELECT CONVERT(VARCHAR(20),GETDATE())AS Result;

输出

当查询执行时,它将生成如下所示的输出:

+------------------------------------+
|                              Result|
+------------------------------------+
|               Feb 23 2023 11:19AM  |
+------------------------------------+

示例

考虑另一种情况,我们将使用GETDATE()与CONVERT()函数,并通过以下查询来指定样式-

SELECT CONVERT(VARCHAR(11),GETDATE(),106) AS Result;

输出

当查询被执行时,它将生成如下所示的输出:

+------------------------------------+
|                              Result|
+------------------------------------+
|                       23 Feb 2023  |
+------------------------------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程