Sql server 2005 tsql:将变量强制转换为字符串类型的最佳方法?
我编写了一个tsql过程,将字符串插入到文本文件中,这意味着它需要将所有变量转换为字符串。是否有一种更容易做到的方法来代替使用逐例语句,它包含所有的案例并强制将任何类型转换为字符串类型Sql server 2005 tsql:将变量强制转换为字符串类型的最佳方法?,sql-server-2005,tsql,Sql Server 2005,Tsql,我编写了一个tsql过程,将字符串插入到文本文件中,这意味着它需要将所有变量转换为字符串。是否有一种更容易做到的方法来代替使用逐例语句,它包含所有的案例并强制将任何类型转换为字符串类型 提前感谢所有大写字母均为文字,小写字母应插入一个值: CAST(expression AS CHAR) -- or: CAST(expression AS VARCHAR) 可以选择指定长度 不幸的是,如果您想以任何不同于默认表示的方式格式化datetimes,则使用datetimes会有点困难 我的信息来自网
提前感谢所有大写字母均为文字,小写字母应插入一个值:
CAST(expression AS CHAR)
-- or:
CAST(expression AS VARCHAR)
可以选择指定长度
不幸的是,如果您想以任何不同于默认表示的方式格式化datetimes,则使用datetimes会有点困难
我的信息来自网络。我认为你必须仔细阅读该网站和其他网站,并对其进行一些操作,但希望CAST
功能将是一个良好的开端
祝你好运 我认为没有——如果有,我也不会相信,因为可能对整个格式的控制非常有限。建造你自己的,它会看起来完全像它需要的样子。需要考虑的因素:
- 日期格式
- 数字、前导零、小数位数、+/-符号
- 换行
- 前导空格、尾随空格、字符串之间没有前导空格或尾随空格的空格
…它不停地播放。您每次都需要转换/播放它。我制作了一个函数来使用:
CREATE FUNCTION QuoteNull
(
@InputStr varchar(8000) --value to force to string
)
RETURNS
varchar(8000)
AS
BEGIN
RETURN COALESCE(''''+@InputStr+'''','null')
END
它在值周围加上单引号,如果值为null,则只在单词null周围加上单引号,但您可以根据需要对其进行自定义
以下是自动处理格式化日期的版本:
CREATE FUNCTION QuoteNull
(
@InputStr sql_variant --value to force to string
)
RETURNS
varchar(8000)
AS
BEGIN
DECLARE @String varchar(8000)
SET @String=COALESCE(''''+ CASE SQL_VARIANT_PROPERTY(@InputStr,'BaseType')
WHEN 'datetime' THEN CONVERT(varchar(23),@InputStr,121)
ELSE CONVERT(varchar(8000),@InputStr)
END
+'''','null')
RETURN @String
END