0

ReceivedOnタイプの列を持つテーブルがありますDateTime。次のような select ステートメントを使用してストアド プロシージャを実行しています。

Select 
    CONVERT(DateTime,ReceivedOn)[Date/Time], MessageText[Event] 
From 
    RawFeed 
Where 
    ATM = (Select Code From ATM Where ATM = @ATMID) 
    AND ReceivedOn Between @From And @To 
Order By 
    ReceivedOn Desc 

ストアド プロシージャの結果を DataTable オブジェクトに格納しています。このオブジェクトを私の.aspxページに表示する

dtReturn = sspObj.ExecuteDataTable();
return dtReturn ;

DataTableオブジェクトは、結果をテーブル オブジェクトに格納する関数を使用して HTML テーブルに変換し、それをページに追加しています。

tOutput = Generix.convertDataTable2HTMLTable(dtOutput, true, true, false);
Page.Controls.Add(tOutput);

しかし、値を次のように表示する代わりに

2012-10-05 16:40:35.234

次のような出力が得られます。

2012-10-05 04:40:35 PM
4

3 に答える 3

2

これは SQL の問題ではありません。SQL は datetime を返します。これは、C# によって書式設定され、表示されている出力に表示されます。SQL サーバーが日付を表す varchar (文字列) を独自の形式で返すようにしたい場合は、次を試してください。

SELECT CONVERT(varchar(24), ReceivedOn, 121)

詳細については、キャストと変換を参照してください。

于 2012-10-05T12:10:10.060 に答える
2

変換せず、そのままにしておいてください。

Select ReceivedOn, ...
于 2012-10-05T11:59:26.967 に答える
0
select 
CONVERT(varchar,CONVERT(Date,ReceivedOn,101))  + ' ' + 
convert(varchar,CONVERT(TIME,ReceivedOn)) AS ReceivedDate,
CONVERT(DateTime,ReceivedOn)[Date/Time], MessageText[Event] 
From 
RawFeed 
Where 
ATM = (Select Code From ATM Where ATM = @ATMID) 
AND ReceivedOn Between @From And @To 
Order By 
ReceivedOn Desc 

これを試してみてください。

于 2012-10-05T12:39:48.333 に答える