2017-08-15 4 views
0

私は、テーブルに日付を書き込む必要があるWeb APIコントローラを持っています。日付時刻の一部を取得する

私はこのコード

DateTime dt = DateTime.Today.Date; 

を使用しようとする。しかし、それは、日付と時刻

ここでは、時刻表クラス

ある書き込み日付の部分については、この

[ResponseType(typeof(TimeTable))] 
    public IHttpActionResult PostStartPause(TimeTable startPause) 
    { 
     if (!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 
     if (ModelState.IsValid) 
     { 
      DateTime dt = DateTime.Today.Date; 
      TimeTable c = (from x in db.TimeTables 
       where x.Company == startPause.Company && x.INN == startPause.INN 
       select x).First(); 
      c.StartPause = startPause.StartPause; 
      c.Today = dt; 
      db.SaveChanges(); 
     } 
     //db.TimeTables.Add(startPause); 
     //db.SaveChanges(); 
     return Json(new { Result = "Success", Message = "Saved Successfully" }); 
     // return CreatedAtRoute("DefaultApi", new { id = startPause.Id }, startPause); 
    } 

ようにそれをやろう

public partial class TimeTable 
{ 
    public int Id { get; set; } 
    public string Company { get; set; } 
    public string INN { get; set; } 
    public string StartDay { get; set; } 
    public string StartPause { get; set; } 
    public string EndDay { get; set; } 
    public string EndPause { get; set; } 
    public Nullable<System.DateTime> Today { get; set; } 
} 

どのようにしてDBに日付だけを書き込むことができますか?

+0

: –

+0

データベースの 'Today'カラムは' datetime'型に設定されていますか? 'date'だけに変更してみてください(C#には' DateTime'しかありません)。 –

+0

または単にそれを文字列 'DateTime.Today.Date.ToString(" yyyyMMddHHmmss ")に変換することができます。 //大文字と小文字を区別して 'それに対処するSQL Serverでトリガを書く、すなわち逆変換を行う –

答えて

2

DBサーバーでテーブルスキーマを確認する必要があります。明らかにフィールドデータ型はDateTimeに設定されていますが、代わりにDateを使用できます。 `DateTime`は、常に時間成分を有しているので

DateTime.Today.ToShortDateString() 
2

は日付だけを取得します。 'time'を指定せずにdbに値を格納する場合は、DATE型(SqlServer)の型を指定してください。
関連する問題