MSSQL:数字转换为字符串的技巧

概述

在MSSQL中,经常会出现将数字转换为字符串的需求,比如将数字ID转为字符串ID,将数字型日期转为字符串型日期等等。本文将向您介绍一些技巧,帮助您完成数字到字符串的转换。

将数字转化为字符串的方法

方法1:使用CAST或CONVERT

将数字转换为字符串的一种简单方法是使用CAST或CONVERT函数。

--使用CAST函数将数字转换为字符串

DECLARE @num INT = 123;

SELECT CAST(@num AS varchar(10));

--使用CONVERT函数将数字转换为字符串

SELECT CONVERT(varchar(10), @num);

使用CAST或CONVERT函数时,必须指定要转换的数据类型。在上面的示例中,我们将数字转换为varchar类型,并指定字符串的最大长度为10。如果超出了指定的长度,则结果将被截断。

方法2:使用STR函数

STR函数将数字转换为字符串并可以指定字符串的格式。

DECLARE @num INT = 123;

SELECT STR(@num, 6, 2);

在这个例子中,第二个参数指定了字符串的总长度为6个字符,第三个参数指定了小数点后的位数为2。如果位数不足,STR函数会用0填充。

方法3:使用CONCAT或+运算符

如果要将数字与其他字符串组合,可以使用CONCAT或+运算符。

DECLARE @num INT = 123;

SELECT CONCAT('ID:', @num);

SELECT 'ID:' + CAST(@num AS varchar(10));

这两个示例的输出结果相同,都是ID:123。

转换日期到字符串

在MSSQL中,日期是存储为数字的。如果要将日期转换为字符串,可以使用与数字转换类似的方法。

方法1:使用CAST或CONVERT

DECLARE @date DATETIME = GETDATE();

SELECT CAST(@date AS VARCHAR(20));

SELECT CONVERT(VARCHAR(20), @date);

在使用CAST或CONVERT函数时,可以指定要转换的日期格式。下面是一些常用的日期格式:

yyyy-MM-dd: 例如:2021-11-11

yyyy-MM-dd HH:mm:ss: 例如:2021-11-11 12:30:45

MM/dd/yyyy: 例如:11/11/2021

MMM dd, yyyy: 例如:Nov 11, 2021

方法2:使用CONCAT或+运算符

DECLARE @date DATETIME = GETDATE();

SELECT 'Today is ' + CONVERT(VARCHAR(20), @date, 106);

SELECT CONCAT('Today is ', CONVERT(VARCHAR(20), @date, 106));

这两个示例输出的结果都是类似于“Today is Nov 11, 2021”的日期格式。

总结

在MSSQL中将数字或日期转换为字符串可以使用CAST、CONVERT、STR、CONCAT或+运算符等方法。每种方法都有其适用的场景,具体取决于您的需求。

数据库标签