SQL CONVERT() 函数

一、SQL CONVERT() 函数

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

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

二、语法

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

CONVERT(data_type(length), expression, style)

参数:

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

  • data_type − 需要转换的有效表达式。
  • length − 结果数据类型的长度,可选。
  • expression − 要将表达式转换为的数据类型。
  • style − 用于结果的格式,可选。

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

日期和时间 的转换样式:

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

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

风格结果
0最多6位数。当适用时,使用科学计数法。
18位数。始终使用科学计数法。
216位数。始终使用科学计数法。

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

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

示例1:

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

SELECT CONVERT(int, 123.34) AS Result;

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

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

示例2:

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

SELECT CONVERT(varchar, 12344.34) AS varchar;

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

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

示例3:

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

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

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

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

示例4:

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

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

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

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

示例5:

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

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

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

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

示例6:

让我们考虑另一个示例,我们要通过运行以下查询将货币转换为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         |
+-----------------------------------+-------------------------------------+

示例7:

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

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

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

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

示例8:

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

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

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

+------------------------------------+
|                              Result|
+------------------------------------+
|                       23 Feb 2023  |
+------------------------------------+
—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花