3

Excel から値を読み取り、読み取った行を SQL に挿入していますが、日付列の問題に直面しています。

Excel から日付を として読み取ってい23-08-2011 01:33:01ますが、データベースでは値は として保存されてい2011-08-22 10:21:18.000ます。

読んでいる日付を C# (T-SQL ではなく)yyyy-mm-dd 00:00:00:000形式に変換する方法はありますか? に変換23-08-2011 01:33:01したい2011-08-23 00:00:00:000

4

3 に答える 3

3
  1. を使用してExcel文字列をDateTimeオブジェクトに解析しますDateTime.ParseExact
  2. 適切なフォーマット文字列を使用して、オブジェクトDateTimeを SQL フォーマットにフォーマットします。String.Format

DateTime フォーマット文字列を作成する方法については、次の 2 つのリソースを参照してください。

標準の日付と時刻の書式文字列

カスタムの日付と時刻の書式文字列

DateTime excel = DateTime.ParseExact("23-08-2011 01:33:01", "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture);
String sqlString = String.Format("{0:yyyy-MM-dd hh:mm:ss:ffff}", excel);
于 2013-09-19T16:44:00.917 に答える
1

ParseExactからの方法を使用します。DateTime

DateTime parsedDate = DateTime.ParseExact("23-08-2011 01:33:01", 
    "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture);

レコードを挿入する方法に応じて、DateTime オブジェクトを使用できるはずです。それ以外の場合は、文字列として保存できます。

string sqlDate = parsedDate.ToString("yyyy-mm-dd hh:mm:ss:fff");
于 2013-09-19T16:46:50.640 に答える
1
string dateString = "23-08-2011 01:33:01";            
string format = "dd-MM-yyyy hh:mm:ss";            
DateTime date = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
string again = date.ToString("yyyy-MM-dd 00:00:00:000");
于 2013-09-19T17:08:08.877 に答える