SQL正确使用STR,CONVERT和NVARCHAR

时间:2018-11-29 16:25:31

标签: sql sql-server

我一直在Datacamp上学习一门课程,下面有一个问题, 我的回答似乎是正确的,并且给出了正确的结果,但是它被标记为错误。怎么了?

在适当的地方使用STR,CONVERT和NVARCHAR(30)在“雇员”表中为每个雇员显示名字,雇员ID和生日(ISO 8601格式的Unicode)。

每个结果应为以下格式的单个字符串,其中每个<>均由适当转换的值代替:

<>的EmployeeID为<>,并且出生于<> 您提交的内容应与上面给出的格式完全匹配。

我的答案:

SELECT FirstName + ' has an EmployeeID of ' 
+ STR(EmployeeID) + ' and was born ' + 
CONVERT(NVARCHAR(30), BirthDate, 126) FROM dbo.Employees

2 个答案:

答案 0 :(得分:1)

str()左侧用空格填充员工ID。所以:

select '|' + str(1) + '|'

返回:

|         1|

我认为这些空格在结果集中是不理想的。简单地转换为字符串通常就足够了:

convert(varchar(255), EmployeeId)

此外,生日的时间可能是不可取的,所以我只使用日期部分:

CONVERT(NVARCHAR(10), BirthDate, 126)

答案 1 :(得分:0)

SELECT FirstName,'EmployeeID为'+ STR(EmployeeID)+',并且出生于'+ 来自dbo.Employees的CONVERT(NVARCHAR(30),BirthDate,126)