私はこれをやろうとしています
SELECT CAST(date AS datetime) + CAST(time AS datetime) AS NewDT, variable, value
FROM batch
WHERE (NewDT <= @BatchStartDate)
しかし、「Invalid colum name NewDT」というエラーが表示されます。問題は、日付と時刻がデータベース内の 2 つの列にあることです。
私はこれをやろうとしています
SELECT CAST(date AS datetime) + CAST(time AS datetime) AS NewDT, variable, value
FROM batch
WHERE (NewDT <= @BatchStartDate)
しかし、「Invalid colum name NewDT」というエラーが表示されます。問題は、日付と時刻がデータベース内の 2 つの列にあることです。
MS SQL Serverを使用していると思います。WHERE
句でエイリアスを参照することはできません。フルを使用する必要があるため、次のCAST(date AS datetime) + CAST(time AS datetime)
ようになります。
SELECT CAST(date AS datetime) + CAST(time AS datetime) AS NewDT, variable, value
FROM batch
WHERE (CAST(date AS datetime) + CAST(time AS datetime) <= @BatchStartDate)
(また、SQL Serverを使用していると推測しています)
where句ではエイリアスを使用できないため、式全体を使用するか(Yaroslavの回答のように)、次のように元の選択をサブクエリとしてラップできます。
select * from
(
SELECT CAST(date AS datetime) + CAST(time AS datetime) AS NewDT, variable, value
FROM batch
)
WHERE NewDT <= @BatchStartDate