次のSQL文を使用しようとしていますが、すぐにクエリを実行しようとしています'datetimeを文字列に変換すると変換できませんでした。 'エラーメッセージ。where句でdatetimeを文字列から変換するときに変換に失敗しました
私は、periodperをdatetimeで有効にするにはwhere句のdateと同様にfiscalperiodを変換しようとしましたが、datetimeクエリでフィルタを使用するとすぐに失敗します。
私はtempテーブルに同じ結果を格納し、次にtempテーブルで日付フィルタを使用すると、期待される結果が得られます。
以下のクエリで何が間違っているか確認してください。
WITH TEMP_LEDGERPERIOD (DATAAREAID, PERIODSTART, PERIODEND, FISCALPERIOD)
AS
(
SELECT dataareaid, PERIODSTART, PERIODEND, CONVERT(DATETIME, '01-' + COMMENTARIES) AS FiscalPeriod
FROM LEDGERPERIOD LPT WITH (NOLOCK)
WHERE (COMMENTARIES NOT LIKE '%OPEN' and COMMENTARIES NOT LIKE '%CLOSE')
)
Select *
from TEMP_LEDGERPERIOD
where FiscalPeriod BETWEEN '2016/01/01' AND '2016/02/01'
「解説」はどのように見えますか? –
はWHERE句、またはCONVERT関数でエラーですか? WHERE句をコメントアウトして、まだエラーが発生していないかどうかを確認してください。 – FLICKER