store only date in database not time portion C#

为君一笑 提交于 2019-12-21 07:25:42

问题


I have a test class and an ExecutionDate property which stores only date but when we use [DataType(DataType.Date)] that also stores the time portion in database but I want only date portion.

public class Test
{
     [Key]
     public int Id { get; set; }

     [DataType(DataType.Date)]
     public DateTime ExecutionDate { get; set; }      
}

Is any way to store only date on time portion in db using Entity Framework? Please help me....

I have added snapshot when use [DataType(DataType.Date)] that stores time portion 00:00 I want remove that


回答1:


I think you are trying to specify database column type. You could use data annotations as described in this article.

Here is an example :

[Table("People")]
public class Person
{
    public int Id { get; set; }

    [Column(TypeName = "varchar")]
    public string Name { get; set; }

    [Column(TypeName="date")]
    public DateTime DOB { get; set; }
}

By default, string is translated to nvarchar, we have changed that here. Also Datetime (this is what you asked I suppose) which by default maps to datatime in sql server, is changed to date which stores only the date portion and not the time portion of a DateTime value.




回答2:


As David said above, once you bring that data into the application it will be a DateTime with the timestamp added onto the date. This would be the same result too if you stored the date as a string and used Convert to change to a DateTime for any manipulation:

string date = "2015-11-17";
var dateTime = Convert.ToDateTime(date);

Unless you want to manipulate strings in your application to avoid the timestamp, you can only work with DateTime. For display purposes though, you can always format the date and remove the timestamp:

var dateTime = DateTime.Now;
var formatDate = dateTime.ToString("yyyy-MM-dd");



回答3:


Change DateTime to nvarchar(10) in database if u use DateTime in database 00.00.00 will be automatically assigned by database

string date = DateTime.Today.ToShortDateString();



回答4:


Change datatype on the database from Datetime to Date type

Is it really an issue for you anyway? You may want time in there at some point,



来源:https://stackoverflow.com/questions/33762292/store-only-date-in-database-not-time-portion-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!