2017-07-31 25 views
0

データベースにレコードを挿入するときに、C#の日付時刻を7/31/2017 3:13:49 PMに変換することはできません。c#時刻からsql日付時刻

私は

DateTime dt = DateTime.Parse("11/23/2010"); 
string toSqlDate= dt.ToString("yyyy-MM-dd HH:mm:ss"); 
DateTime finalDate = DateTime.Parse(toSqlDate); 

を使用して、これをやっている。しかし、それは私にエラーを与えています。

文字列が有効なDateTimeとして認識されませんでした。

+1

あなたはどんなrdbmsで作業していますか? –

+0

SQL Serverを使用している場合、datetimesは互換性があります – Ferus7

+0

まず、異なる形式の日付文字列を解析してから、書式文字列を解析しようとしています。 ['DateTime.ParseExact'](https://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx)のドキュメントをチェックしてください –

答えて

0

年/月/日に変更すると、これが役立ちます。

var sqlDate = finalDate.Date.ToString("yyyy-MM-dd HH:mm:ss"); 
0

あなたの日付形式は '年/月/日'の間に '年月日'と表示されますが、それは正しいとは限りません。あなたの日付書式またはあなたの日付書式を変更してください。

これは動作するはずです:

DateTime dt = DateTime.Parse("2010-11-23 00:00:00"); 
string toSqlDate= dt.ToString("yyyy-MM-dd HH:mm:ss"); 
+0

私はそれを理解していますが、7/22/2017 3:13:49 AMの値をSQLテーブルに挿入したいと思います。これにはどんなフォーマットがありますか。 –

0

変更クエリ

insert into table_name (column1) values ('" + dt.Value.ToString("yyyy-MM-dd") + "') 
+0

実際に私はlinqをSQLに使用しています。 –

0

https://msdn.microsoft.com/fr-fr/library/w2sa9yss(v=vs.110).aspx(メソッドDateTime.ParseExactを試してみて、あなたのために適している日付形式を指定し、ここでMSDNからの例です。 ):

var dateString = "06/15/2008"; 
var format = "d"; 
try { 
    var result = DateTime.ParseExact(dateString, format, 
    CultureInfo.InvariantCulture); 
    Console.WriteLine("{0} converts to {1}.", dateString, 
    result.ToString()); 
    } 
    catch (FormatException) 
    { 
    Console.WriteLine("{0} is not in the correct format.", dateString); 
    } 
0

ネットDateTimemaps directly SQL Server DateTimeに送信します。

SqlCommand.Parameters.Add("@DateTimeParam", SqlDbType.DateTime).Value = dt; 

:これは、あなたがすべてを行う必要があるSqlCommandにパラメータとしてDateTime構造体のインスタンスを渡すDateTimedoes not have a display format.
いるので、すべての表示形式を心配する必要がないことを意味しますボーナス読み:How do I create a parameterized SQL query? Why Should I?