2017-08-15 59 views
0

我有web api控制器,我需要写日期到表。获取日期时间的一部分

我尝试做这样

[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); 
    } 

对于日期部分,我尝试使用此代码

DateTime dt = DateTime.Today.Date; 

但它写的日期和时间

这里是时间表类

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

因为'DateTime'总是有一个时间分量。如果你想在没有'时间'的数据库中存储的值,使字段'日期'类型(SqlServer) –

+0

是'数据库中的今日'列设置为'日期时间类型?尝试将它改为'date'(C#只有'DateTime')。 –

+0

或者你可以把它转换成一个字符串'DateTime.Today.Date.ToString(“yyyyMMddHHmmss”); //区分大小写',然后在Sql Server中写入触发器来处理即进行反向转换 –

回答

2

您必须在数据库服务器上检查您的表架构,显然该字段数据类型设置为DateTime,而您可以使用Date

2

要获得唯一的日期:

DateTime.Today.ToShortDateString()