2017-03-28 23 views
0

Visual Studio 2012で作成されたアプリケーションを編集しています。ユーザーが日付範囲を選択するCrystal Reportを作成しようとしています。 SQL Management Studioでうまく動作する簡単なSQL Serverクエリのコマンドを追加しました。Crystal Reportsの日付のコマンドVisual Studio 2012の範囲

Select customerID, orderID, orderDate 
From tblOrders 
Where orderDate BETWEEN CONVERT(DATETIME, '01/01/2015 00:00:00', 102) 
        AND CONVERT(DATETIME, '01/01/2016 11:59:59', 102) 

は、私は、日付などから、とにパラメータを作成し、私の日付を置換:

Select customerID, orderID, orderDate 
From tblOrders 
Where orderDate BETWEEN CONVERT(DATETIME, '{?From} 00:00:00', 102) 
         AND  
         CONVERT(DATETIME, '{?To} 11:59:59', 102) 

私は同じ日付を使用して、次のエラーが表示されます。私は、クエリを試してみました

Failed to retrieve data from the database. 
Details: ADO Error Code 0x80040e14 
Source Microsoft OLE DB Provider for SQL Server Description: Incorrect syntax near '2015'. 
SQL State: 42000 
Native Error: 102 [Database Vendor Code 102] 

Convert関数を使わずに、同じ結果を得ることができます。

答えて

0

これは正しいコードではありません。

'{?From} 00:00:00' 

それができる:

{?From} & " " & '00:00:00' in formula 

そして、あなたは、静的timeとそのParameterのようにやりたい理由を、私は疑問に思って?

これはテスト済みの状態で実行されている変換です。

CONVERT(DATETIME,convert(datetime, CONVERT(varchar,dt,101) + ' 00:00:00',102), 102) 

日付形式を忘れないでください、あなたの水晶レポート

+0

{?From}からdtを変更することができますすることは非常に敏感な場合です。私は、DBからパラメータまで同じフォーマットであれば、あなたの日付をチェックすることを意味します。 –

+0

これは、Visual StudioプロジェクトのCrystal Reportsの[コマンドの変更]ウィンドウ内にあります。 SQLステート:42S22ネイティブエラー:207 [データベースベンダーコード207] " – Rick

+0

静的な時間を使用して、日付だけを選択できるようにしました。 00:00:00以降の日付内にすべてを戻します。私は、Crystal Reportsの日付ピッカーが自動的に現在の時刻を選択していることに気付きました。 – Rick

関連する問題