に挿入する日付は、次のTSQLを考えてみましょう:TSQL - 動的SQL
SET @WhereClause1 = 'where a.Date > ' + @InvoiceDate
私は、日付/文字列変換エラーが発生します。 @InvoiceDate
はdatetime変数です。正しい構文は何ですか?
に挿入する日付は、次のTSQLを考えてみましょう:TSQL - 動的SQL
SET @WhereClause1 = 'where a.Date > ' + @InvoiceDate
私は、日付/文字列変換エラーが発生します。 @InvoiceDate
はdatetime変数です。正しい構文は何ですか?
これは機能する場合があります。
SET @WhereClause1 = 'where a.Date > ''' + convert(varchar, @InvoiceDate) + ''''
ただし、値がnullの場合はエラーが発生します。
最初に文字列として作成したクエリの場合、@InvoiceDateをthisのような文字列に変換する必要があると思います。 http://www.databasejournal.com/features/mssql/article.php/10894_2197931_1/Working-with-SQL-Server-DateTime-Variables-Part-Two---Displaying-Dates-and-Times-in-Different-Formats.htm
...おそらく、引用符で日付文字列を囲む必要があります。
null値や他のバリデーションをチェックする必要があるので、実際には呼び出し元ルーチンで日付文字列を作成するほうがよいでしょう。
EXEC sp_executesql N'SELECT * FROM Orders WHERE a.Date > @date',
N'@date datetime',
@date = @InvoiceDate
を引用符 – eKek0
で(文字列内の)日付を同封しなければならないので、これは動作しません[OK]を、おかげで、私はそれを持つ –
を修正しますこれは私が必要としたことでした。ありがとうすべて – Jeff