我在MSACCESS上编写了以下SQL
SELECT
Followup.MRN, Followup.dateentered, Followup.formname,
(Followup.MRN & Format([Followup.dateentered], "yyyymmdd")
& Followup.formname)
AS UniqueMilestoneID
FROM Followup;
它工作正常
现在我在SQL Server中写这个:
SELECT
Followup.MRN, Followup.dateentered, Followup.formname,
(Followup.MRN & Convert([Followup.dateentered], "yyyymmdd")
& Followup.formname) AS UniqueMilestoneID
FROM Followup
我收到以下错误
Msg 207,Level 16,State 1,Line 1
列名称'yyyymmdd'无效。
Msg 243,Level 16,State 1,Line 1
类型Followup.dateentered不是已定义的系统类型。
知道如何克服“转换”功能的错误
答案 0 :(得分:3)
我想你想要这个:
SELECT
Followup.MRN, Followup.dateentered, Followup.formname,
Followup.MRN +
Convert(char(8), Followup.dateentered, 112) +
Followup.formname AS UniqueMilestoneID
FROM Followup
以下是date formats in SQL Server的参考。要在SQL Server中连接字符串,还要使用+
符号而不是&
答案 1 :(得分:2)
首先,SQL Server中的字符串常量由单引号分隔,而不是双引号。
其次,转换不接受该形式的参数。请参阅this。
我认为你想要的是:
convert(varchar(8), Followup.DateEntered, 112)