0

SQL Serverにテーブルがあり、タイプのorderDate列がありますdatetime

ここに画像の説明を入力

asp.net ページでusing を使用しSystem.Globalization、このコードを使用して、この 1391/01/29 年/月/日のような太陽形式のシステム日付履歴を取得します。

 PersianCalendar pc=new PersianCalendar(); 
 DateTime dt = DateTime.Now; 
 string year= pc.GetYear(dt).ToString();
 string month= pc.GetMonth(dt).ToString();
 string day= pc.GetDayOfMonth(dt).ToString();

それは正常に動作し、テーブルに日付を保存してからSQL Serverで選択クエリを記述しますが、この列の値を取得しSqlDataSourceて別のasp.netページで使用するグリッドビューに表示すると、このような結果:

AM 12:00:00  9/1/1391 

しかし、次のような結果が表示されるはずです

1391/09/01

なぜこれが起こるのかわからない?

4

2 に答える 2

2

バインドされたフィールドにDataFormatStringプロパティを設定します。

<asp:BoundField DataField="<Your Date Field>" HeaderText="<Column Header>"
                DataFormatString="{0:yyyy-MM-dd}"  />
于 2013-02-10T18:45:15.740 に答える
1

または、アプリケーションに渡す前にサーバーで日付値を変換できます。

SELECT replace(convert(varchar(10),getdate(),120),'-','/') date
于 2013-02-10T18:46:58.890 に答える