2012-02-14 15 views
0

Date 02/14/2012を「20120214」の形式に変換するにはどうすればよいですか?日付を8桁の整数に変換する方法は?

私はデータベースの日付を整数として保存したいのですが、これはもっと柔軟性があるようです。

+6

私はMM/DD/YYYYとしてデータを保存することはないが、あなたは必ずテキストフィールドYYYYMMDDとして保存されている実際の日付よりも優れていますまたはdatetimeフィールド?ほとんどの場合(すべてではないにしても)、dbのdatetimeがサポートされています。 – andrew

+1

彼はテキストを言っていない、と彼は言う整数。 THERは、例えば、異なる寸法(年間の月の日に20120214、201202、2012)のために、しかし、テキストの理由です。時々使用されます。 – TomTom

答えて

7

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

DateTime date = new DateTime(2012, 02, 14); 
string toDb = date.ToString("yyyyMMdd"); 

更新 ああ、私はデータベースエンジンの代わりの文字列形式を使用して、データベース内のDateTimeフィールドを使用することができ促すコメントがありますので、。 datetimeをテキストとして格納することは柔軟性がありません。いくつかのエンジン(Sqliteのような)はdatetimeフィールドをサポートしていませんが、ほとんどのエンジンはそうしています。 datetimeの文字列形式を使用すると、dbから値を取得したり、dbに保存したりする必要がある場合は、手動による解析と変換を適用する必要があります。一度忘れてしまえば、見つけにくいバグにつながることは非常に簡単です。日時フィールドを使用している間は、それについて覚えておく必要はありません。

+0

、これは動作しません、それは私がPedantically – V4Vendetta

+0

感謝を変換する前に、それは今柔軟可能性があり、デシベルで日時フィールドを使用するためのメモを追加するように注意してください年<1000年、ここで、 "YYYYMMDD" がそうであるよう。 –

0

あなたのDateTimeのインスタンスのために.ToStringのカスタムDateTime書式文字列を使用することができます上の

さらに詳しい情報:しかしhttp://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

dateTime.ToString("yyyyMMdd")

ほとんどすべてのデータベース文字列ではなく日付として日付を格納する方法があります。その文字列を調べたい場合があります。日付を日付データ型として保持すると、日付の計算を行う場合に、潜在的なローカリゼーションの問題やその他の日付関連の問題を回避できます。

1

お試しください。

string[] dtPart = "02/14/2012".Split('/'); 

DateTime dt = new DateTime(int.Parse(dtPart[2]), int.Parse(dtPart[0]), int.Parse(dtPart[1])); 
int result = int.Parse(dt.ToString("yyyyMMdd")); 
1

DateTime.Now.ToString( "yyyyMMdd");必要に応じてConvert.ToUInt32を整数に変換してください。

しかし、私はDateTime型がデータベースの整数または文字列より優れていると思います。必要に応じてDateTimeをフォーマットします。

0

使用.ToString("yyyMMdd")

、このいずれかを試してみてください。

Msgbox(Now.ToString("yyyMMdd")) 
+0

を何をすべきか知っている今、あなたしているコメントみんなのメンテナンス地獄に後で –

関連する問題