0

我在 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

我收到以下错误

消息 207,级别 16,状态 1,第 1 行
无效的列名称“yyyymmdd”。
消息 243,级别 16,状态 1,第 1 行
类型 Followup.dateentered 不是已定义的系统类型。

知道如何克服“转换”功能的错误

4

2 回答 2

3

我想你想要这个:

SELECT 
   Followup.MRN, Followup.dateentered, Followup.formname, 
   Followup.MRN + 
      Convert(char(8), Followup.dateentered, 112) + 
      Followup.formname AS UniqueMilestoneID
FROM Followup

这是SQL Server 中日期格式的参考。还要在 SQL Server 中连接字符串,您希望使用+符号而不是&

于 2013-01-05T17:09:38.417 回答
2

首先,SQL Server 中的字符串常量由单引号而不是双引号分隔。

其次, convert 不接受这种形式的参数。看到这个

我想你想要的是:

convert(varchar(8), Followup.DateEntered, 112)
于 2013-01-05T17:11:26.133 回答