2016-04-08 7 views
-1

私はMySQLデータベースにDateTimeを入力することに大きな問題があります。 MySQLはdatetimeをyyyy-MM-dd HH:mm:ssと読み、C#ではdatetimeをdd/MM/yyyy HH:mm:ssと見なします。私は2つの異なる例を試してみましたが、どちらもうまくいきません。C#経由でMySQLにDateTimeを入力する方法

MODEL

public class DateAndTime 
{ 
    public DateTime DateTime { get; set; } 
} 

CONTROLLER

//I Have two examples that doesn't work. 
var myDateTime = "2016-04-08 12:00:00" //this gives the error "cannot covert source 'string' to tartget type System.DateTime 

var myDateTime = Convert.ToDateTime("2016-04-08 12:00:00") //this gives the error "Input string was not in a correct format." 

var model = new DateAndTime 
{ 
    DateTime = myDateTime 
}; 

だから私はこだわっています。私はそこにいる誰かがこの問題を抱えていることを確信している。

+1

どのようにSQL文を作成していますか?パラメータを使用する場合は、書式設定を心配する必要はありません。 – juharr

+0

@juharr - テーブルDateAndTimeの列DateTimeは、MySQLデータベースのyyyy-MM-dd HH:mm:ssとなります。私はdbに書き込むためにnHibernateを使用していますが、まだこのエラーでそれを取得していません。 – NeoSketo

+0

あなたは 'DateTime'ではなく' varchar'としてDBに入っていますか? 'DateTime'は特定のフォーマットを持っていないので、実際は単なる数値です。 SQL文で使用される形式は、人間が理解できるようにするためのものです。 – juharr

答えて

0
DateTime myDate = DateTime.ParseExact("2009-05-08 14:40:52,531", "yyyy-MM-dd HH:mm:ss,fff", 
             System.Globalization.CultureInfo.InvariantCulture); 

チェック:

Converting a String to DateTime

https://msdn.microsoft.com/en-ca/library/cc165448.aspx

https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

+0

これを使用して:var myDateTime = "2016-04-08 14:18:17" とDateTime.ParseExact(myDateTime、 "yyyy-MM-dd HH:mm:ss"、System.Globalization.CultureInfo.InvariantCulture) エラー "入力文字列が正しい形式ではありませんでした。" AM/PMがないために間違っている可能性がありますか? – NeoSketo

+0

これは良いです。私は間違った形式でそれを変換していたことが判明。私は – NeoSketo

0

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

myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); 

myDateTime変数はDateTime型でなければなりません。

は、またはあなたがこののMySQL関数を使用することができます。STR_TO_DATE

STR_TO_DATE('4/8/2016 2:18:17 PM', '%m/%d/%Y %h:%i:%s %p') 

Specifier Format here

+0

これを使用してもエラーを表示します。 "System.DateTime型をタートタイプに変換するための注釈変換元の文字列" – NeoSketo

+0

myDateTime変数はDateTime型でなければなりません。Convert.ToDateTime(myDateTime).ToString( "yyyy-MM-dd HH: mm:ss "); –

+1

ええ。 DateTime myDateTime = {4/8/2016 2:18:17 PM}のときにこのエラーが発生します。 – NeoSketo

0

私はこの問題を持っているので、私のマシンでの日時フォーマットの。デスクトップがdd/mm/yy( - の代わりに/記号)のように設定されている場合、変換する前に/を/に置き換える必要があります。教えてください

+0

私のマシンにはdd/mm/yyyyですが、最終結果はyyyy-MM-dd HH:mm:ssと書かなければならないので、問題はありません。 – NeoSketo

関連する問題