是否有任何方法可以在不使用ddMMyyyy
的情况下将DateTime.Now保存为ToString()
格式。因为每当我使用字符串操作时,实体框架都不接受该语句。我需要以ddMMyyyy
的日期格式将DateTime添加到DB。有什么办法吗?
答案 0 :(得分:2)
将日期存储为“ddMMyyyy”将是愚蠢和适得其反的。首先,您需要varchar(8)
,而不是DATE
或DATETIME
。
最重要的是,您如何使用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.ParseExact
(MSDN 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