2

専門家の方、助けてください...

何万ものレコードを持つ SQL Server データベースからデータをロードするデータテーブルがあり、データテーブル全体を区切りテキスト ファイルに出力するプロシージャがあります。

そのための私の手順には、次の行に沿ったコードがあります。

For Each dtRow As DataRow In dtToWrite.Rows
     File.WriteLine(String.Join(strDelimitter, dtRow.ItemArray.Select(Function(Field) Field.ToString)))
Next 

基本的に、string.join 関数を使用して、データ テーブルの各データ行から区切られた文字列を作成します。

さて、私の問題は、SQL Server から Date 値を取得しているため、最終出力の日付列の値は次のようになることです。

「2012 年 9 月 30 日 12:00:00 午前」

私はそれを表示したいだけですが:

「2012/9/30」

データテーブルから日付部分のみを出力するための最良の方法は何ですか?

ありがとう!

4

3 に答える 3

1

tgolisch州のようにクエリで日付の時刻部分を返すことはできませんし、単に.Split()文字列で使用することもできません。

Dim dateOnly As String = yourString.Split(" ")(0);
于 2012-10-04T16:46:39.363 に答える
1
File.WriteLine(String.Join(strDelimitter, dtRow.ItemArray.Select(Function(Field) DateTime.Parse(Field.ToString).ToShortDateString())))

値を DateTime に変換し、その .ToShortDateString() メソッドを呼び出します。これは文化に依存します。

于 2012-10-04T17:02:15.497 に答える
1

SQL クエリでは、DateTime をフォーマット済みの文字列に変換できます。このような:

SELECT convert(varchar, getdate(), 101)

その他の日付形式については、MSDN の形式リストを確認してください。

于 2012-10-04T16:50:58.743 に答える