0

私はMSACCESSで次のSQLを書きました

SELECT 
    Followup.MRN, Followup.dateentered, Followup.formname, 
    (Followup.MRN & Format([Followup.dateentered], "yyyymmdd") 
     & Followup.formname) 
     AS UniqueMilestoneID
FROM Followup;

それはうまくいきました

これをSQLServerで作成すると、次のようになります。

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

これは、SQLServerの日付形式のリファレンスです。また、SQLサーバーで文字列を連結する+には、&

于 2013-01-05T17:09:38.417 に答える
2

まず、SQL Serverの文字列定数は、二重引用符ではなく一重引用符で区切られます。

第二に、convertはその形式の引数を取りません。これを参照してください。

私があなたが望むと思うのは:

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