将DateTime.Now存储到没有字符串操作的ddMMyyyy格式

时间:2016-11-15 13:17:34

标签: c# entity-framework

是否有任何方法可以在不使用ddMMyyyy的情况下将DateTime.Now保存为ToString()格式。因为每当我使用字符串操作时,实体框架都不接受该语句。我需要以ddMMyyyy的日期格式将DateTime添加到DB。有什么办法吗?

4 个答案:

答案 0 :(得分:2)

将日期存储为“ddMMyyyy”将是愚蠢和适得其反的。首先,您需要varchar(8),而不是DATEDATETIME

最重要的是,您如何使用ORDER BY对其进行排序,或使用BETWEEN个查询,或进行myDate > someValue / myDate < someValue次查询?你不能使用那样的日期字符串。

“ddMMyyyy”这样的表示法是基础的用户界面表示。数据库几乎永远不会存储用户界面表示,这是...你猜对了......用户界面。

最好忘记它,或者准备好面对可怕的后果。

答案 1 :(得分:0)

从&#34; datetime&#34;更改SQL Server数据库数据类型到&#34;约会&#34; ?

答案 2 :(得分:0)

来自DateTime.Parse()方法(MSDN Article

的文章

所以你可以这样做:

var dateTime = DateTime.Parse("01012001");

这将为您提供DateTime类型的对象。

如果您需要指定要使用的日期格式,可以使用DateTime.ParseExactMSDN Article

你会在这种情况下使用哪种(你使用的是英式日期格式):

string[] formats= { "ddMMyyyy" }
var dateTime = DateTime.ParseExact("01012001", formats, new CultureInfo("en-US"), DateTimeStyles.None);

答案 3 :(得分:0)

格式“ ddMMyyyy ”(或任何其他格式)只有在我们谈论字符串时才有意义。

如果您只需要程序中的日,月和年,您仍然可以使用 DateTime 类。 你只需忽略其他属性,如分钟,小时等......

DateTime now = DateTime.Now;
Method(now.Day, now.Month, now.Year);

DateTime emptyDateTime = new DateTime();

// in this case emptyDateTime values are the following:
emptyDateTime.Year:   1
emptyDateTime.Month:  1
emptyDateTime.Day:    1
emptyDateTime.Hour:   0
emptyDateTime.Minute: 0
emptyDateTime.Second: 0