概述
在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或+运算符等方法。每种方法都有其适用的场景,具体取决于您的需求。