2

これは単純なはずのようですが、それは私を壁に押し上げています。

'tx_date'と'time'の2つの列がそれぞれchar(10)として格納されています。(私が知っている悪いデータベース設計ですが、私の設計ではありませんでした)

クエリから、それらを日時にうまく変換できます-

"... convert(datetime、tx_date、time、11)..."

(したがって、tx_date"09/11/27"と時刻"07:12:18"は"2009-11-27 07:12:18.000"を生成します)

ただし、変換をコピーしてSQL Server Management Studioの[数式]フィールドに貼り付けると(テストした場所と同じ場所でクエリで機能します)、「列の数式の検証中にエラーが発生しました」と表示されます。

とにかくその数式を使用するように強制すると機能しますが、数式に問題がある理由がわかるまで、この計算列を重要なテーブルに追加したくありません。

4

1 に答える 1

4

問題なくクエリを使用して、SQL Server Management Studio のテーブルに計算フィールドを追加できます。

ALTER TABLE dbo.YourTable 
  ADD NewDateTimeField AS CONVERT(DATETIME, tx_date + ' ' + time, 11) 

残念ながら、CONVERT 関数は非決定論的であるため、「PERSISTED」にすることはできません。これは、アクセスされるたびに検査されることを意味し、インデックスを配置することはできません:-(

マルク

于 2009-11-28T23:05:51.057 に答える