select *
from abc
where
((@abcStartDate_From IS NULL AND @abcStartDate_To IS NULL) OR
((StartDate > @LicenseStartDate_From) AND (@abcStartDate_To is NULL)) OR
(DATEADD(d, 0, DATEDIFF(d, 0, StartDate)) BETWEEN @abcStartDate_From AND @abcStartDate_To))
注日付および/または時刻を変換する際、変換に失敗しました。動的なクエリで文字列のSQL Server 2012から
私は、動的クエリを記述したいが、文字列から日付/時刻を変換する
私は、動的クエリのスクリプトとして以下で使用しているとき
の変換が失敗したエラーを得た:
--('''+(convert(datetime,@abcStartDate_From,110))+''' IS NULL and '''+(convert(datetime,@abcStartDate_To,110))+''' IS NULL )OR -- ((convert(datetime,StartDate,110) > '''+(convert(datetime,@abcStartDate_From,110))+''') and ('''+(convert(datetime,@abcStartDate_To,110))+''' is NULL)) OR -- (DATEADD(d, 0, DATEDIFF(d, 0, convert(datetime,StartDate,120))) BETWEEN '''+(convert(datetime,@abcStartDate_From,110))+''' and '''+(convert(datetime,@abcStartDate_To,110))+''')'
((''' + convert(varchar(10), @abcExpirationDate_From, 120) + ''' IS NULL and ''' + convert(varchar(10), @abcExpirationDate_To, 120) + ''' IS NULL )OR -- ((A.StartDate > ''' + convert(varchar(10), @abcExpirationDate_From, 120) + ''') and (''' + convert(varchar(10), @abcExpirationDate_To, 120) + ''' is NULL)) OR -- (DATEADD(d, 0, DATEDIFF(d, 0, A.ExpiryDate)) BETWEEN ''' + convert(varchar(10), @abcExpirationDate_From, 120) + ''' and ''' + convert(varchar(10), @abcExpirationDate_To, 120) + '''))'
('''+(convert(nvarchar(10),@abcStartDate_From,111))+''' IS NULL and '''+(convert(nvarchar(10),@abcStartDate_To,111))+''' IS NULL )OR ((convert(nvarchar(10),StartDate,111) > '''+(convert(datetime,@abcStartDate_From,110))+''') and ('''+(convert(nvarchar(10),@abcStartDate_To,111))+''' is NULL)) OR (DATEADD(d, 0, DATEDIFF(d, 0, convert(nvarchar(10),StartDate,111))) BETWEEN '''+(convert(nvarchar(10),@abcStartDate_From,111))+''' and '''+(convert(nvarchar(10),@abcStartDate_To,111))+''')'
しかし、それは私には役に立たなかった。誰も私がこの問題から出てくるのを助けることができますか?
エラーの原因となっている実際のコードを投稿する必要があります。投稿したクエリは動的ではありません。 –
[動的SQLクエリでの変換に失敗しました]の重複の可能性があります。(https://stackoverflow.com/questions/13805969/conversion-failed-error-with-dynamic-sql-query) –
ジョンは、コード行の前に4つのスペースを置きました。 – KtX2SkD