多くのタイプの値、ファイルサイズを格納するNTEXTタイプのフィールドを持つテーブルがあります。レコードのリストに対してクエリを実行し、ファイル サイズを合計しようとしていますが、この厄介な問題が発生しています。
NTEXTはINTまたはBIGINTに直接/暗黙的に変換できないため、最初にVARCHARに変換してから、 INT または BIGINT に変換しようとしています。VARCHAR値をINTまたはBIGINTに変換しようとするまで、すべてうまくいきます。
ここに私のクエリと結果があります:
最初に次のことを試してみましたが、問題はなく、出力は61069 (値は ntext 型のまま) です。
SELECT FileSize
FROM dbo.myTable
WHERE ID = 111
今、私はそれを varchar として変換/キャストしますが、やはり問題ありません。出力は61069 (現在は varchar タイプ) です。
SELECT CONVERT(VARCHAR, FileSize)
FROM dbo.myTable
WHERE ID = 111
最後に、VARCHAR 値を BIGINT に変換して SUM() やその他の計算を実行できるようにしますが、今回は「データ型 varchar を bigint に変換中にエラーが発生しました。」というメッセージが表示されます。
SELECT CONVERT(BIGINT, CONVERT(VARCHAR, FileSize))
FROM dbo.myTable
WHERE ID = 111
代わりに INT に変換しようとすると、「varchar 値 '7/1/2008 3:39:30 AM' をデータ型 int に変換するときに変換に失敗しました」
SELECT CONVERT(INT, CONVERT(VARCHAR, FileSize))
FROM dbo.myTable
WHERE ID = 111
私は完全に迷っています。これを引き起こしている可能性のあるアイデアはありますか?