存储DateTime.现在是不带字符串操作的ddMMyyyy格式

本文关键字:操作 字符串 ddMMyyyy 格式 DateTime 存储 | 更新日期: 2023-09-27 18:18:04

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

存储DateTime.现在是不带字符串操作的ddMMyyyy格式

将日期存储为"ddMMyyyy"将是愚蠢且适得其反的。首先,你需要一个varchar(8),而不是DATEDATETIME

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

同样,像"ddMMyyyy"这样的符号是一个底层的用户界面表示。数据库几乎不应该存储用户界面表示,这是…你猜对了……用户界面。

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

将SQL Server数据库的数据类型从"datetime"更改为"date" ?

从文章中获取DateTime.Parse()方法(MSDN文章)

所以你可以这样做:

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

这将给你一个DateTime类型的对象。

如果你需要指定你想使用的日期格式,你可以使用DateTime.ParseExact (MSDN文章)

在这样的情况下(当你使用英式日期格式时):

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

格式"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