MSSQL字符串函数问题 解决好加分!!

来源:百度知道 编辑:UC知道 时间:2024/07/12 14:06:29
MSSQL数据库
SQL语句中的日期或者说连接字符出了问题

目的是取现在客户端日期中的“年”,如2009
再取一个数据库中日期字段中的“月”和“日”,如8和1
组成字符“2009-8-1”输出

我是这么写的,但是输出结果却是2020(结果是2009+8+1)

SELECT Datepart(yyyy,getdate())+'-'+Datepart(m,[日期字段])+'-'+Datepart(d,[日期字段]) AS dd from [数据表] where [id]=4"

请问怎么写才能输出字符“2009-8-1”,而非相加结果2020

SELECT replace(
convert(char(4),Datepart(yyyy,getdate()))
+'-'+
convert(char(2),Datepart(m,[日期字段]))
+'-'+
convert(char(2),Datepart(d,[日期字段])),' ','') AS dd
from [数据表] where [id]=4"

补充说明:SqlServer中 【+】 只有在连接字符串的时候才能起到连接的作用,用【convert】 转一下就可以了。

---
以上,希望对你有所帮助。

不能用‘+’号的,用了就是‘-’转换了类型,变成了计算表达式,你用concat 函数来连接试试