2

次のSQLコードがあります(ms sql server 2008)

select (analysisno + ' ' + '-' + ' ' + description + ' ' + '-' + ' ' + formdate) as columnA 

Formdate による Old_Analysis_Data の順序から

文字列から日付や時刻を変換すると、次のエラーが発生します。変換に失敗しました。

AnalysisNo は varchar(10) です。説明は varchar(500) です。formdate は datetime です (私のテーブルではなく、古いテーブルです)。

グーグルで答えが見つからないので、どんなアイデアでも。

4

3 に答える 3

1

Convert before concatenation を使用して時刻を文字列に変換します。

SELECT ( analysisno + ' ' + '-' + ' ' + description + ' ' + '-' + ' ' 
     + CONVERT(VARCHAR(20), formdate, 100) ) AS columnA 
FROM 
     Old_Analysis_Data 
ORDER BY 
     formdate

この場合、100 は例として日付スタンプ形式を mon dd yyyy hh:miAM (または PM) に設定するスタイルです。

http://www.w3schools.com/sql/func_convert.aspを参照して ください。

于 2013-04-25T13:02:04.843 に答える
0

formdate直接連結する代わりに、最初に文字列に変換し、

convert(varchar(15), formdate, 103)

これにより、次の形式が得られます

dd/MM/yyyy
于 2013-04-25T13:02:05.167 に答える
0

これを試して:

select (analysisno + ' - ' + description + ' - ' 
+ convert(varchar(100),formdate)) as columnA
from Old_Analysis_Data order by formdate
于 2013-04-25T12:55:01.573 に答える