2009-05-29 22 views
0

を使用してMS SQL SELECTクエリに日付と時刻を変換します@dateのソースが持つラベルです私はSqlDataSourceコントロールを持っており、選択クエリが似ている。このような状況持っSelectParameters

SELECT col1, col2 FROM table1 WHERE colDate = @date 

をテキスト:私は、クエリを実行すると、私は次のエラーを取得する2009-05-29午前12時06分00秒 :文字列から日付 および/または時刻を変換する際に

変換に失敗しました

convert(datetime、@date)と、ラベル自体の異なる日付/時刻の書式設定を使用してみました。たびにエラーが発生します。

しかし、私のような管理スタジオでクエリを実行すると:

SELECT col1, col2 FROM table1 WHERE colDate = '2009-05-29 12:06:00' 

それは魔法のように動作します!

私には何が欠けているのでしょうか?

EDIT:

私は@dateはTTがどこから来ている私にはわからない 2009年5月29日午前1時30分00秒TTとして解析されていることが分かりましたか?そして、私はSQL Serverがそれを処理できないと確信していますか?

+0

どのように@dateパラメータを初期化していますか? – Draco

+0

私はSqlDataSourceコントロールに以下を追加:管理スタジオで作業を行うこと – SilverViper

答えて

1

あなたは

SELECT col1, col2 FROM table1 WHERE colDate = CONVERT(DATETIME, @date, 120) 

を試してみて、試してください:

<SelectParameters> 
    <asp:ControlParameter ControlID="label1" Name="date" PropertyName="Text" Type="DateTime" /> 
</SelectParameters> 
+0

しかし SQLdatasource.SelectCommandにはありません:(@dateパラメータがどのように解析されるかとは関係ありません。 – SilverViper

2

てみてください:datetimeデータ型に関して利用できる変換形式の完全なリストについては

SELECT col1, col2 FROM table1 WHERE colDate = convert(datetime, @date,120) 

を詳細については、次のSQL Server Books Online Referenceを参照してください。

問題を発見

http://msdn.microsoft.com/en-us/library/ms187928.aspx

2

、私はNow.ToStringを持っていた@dateにダブルTさんを追加しました( "MM/DD/YYYY HH:MM:SS TT")が...今完全に実行されます!

ありがとうございます!

関連する問題