2016-11-15 112 views
-1

是否有任何可能的方法将DateTime.Now保存为ddMMyyyy格式,而不使用ToString()。因为每当我使用字符串操作时,语句不会被实体框架接受。我需要以日期格式ddMMyyyy将DateTime添加到数据库。有什么办法吗?将日期时间现在存储为ddMMyyyy格式,无字符串操作

+0

这可能是一个误解。日期时间的显示格式和数据库存储格式是相互独立的。你能扩展到“......未被框架接受......”,并向我们展示你的代码吗? – dlatikay

+2

不要将日期时间存储为字符串 –

+2

“日期格式”*表示*为*。要么你想要一个字符串,要么你不需要。如果你不想要一个字符串,那就没有格式 - 你只有一个日期/时间值。如果你想要一个字符串,你应该使用'ToString'。我强烈建议*不要*将其存储为字符串。 –

回答

0

将SQL Server数据库数据类型从“datetime”更改为“date”?

+0

这会截断时间部分。但它绝不会强制执行特定的显示格式ddMMyyyy。 – dlatikay

+0

@dlatikay他的问题不是显示数据,而是存储数据,他试图使用ToString()存储它只获取日期而不是时间。正如Yanga所建议的,他应该在SQL表列中使用数据类型日期。看看我对这个问题的评论以获取更多信息。确实是 – Michael

+0

。或者因此在表示层中使用'ToString(“ddMMyyyy”)''。或[this](http://stackoverflow.com/questions/6121271/how-to-remove-time-portion-of-date-in-c-sharp-in-datetime-object-only),或存储'DateTime .Now.Date'而不是'DateTime.Now'。所有猜测直到OP得到改善。 – dlatikay

-1

从文章的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); 
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 
2

这将是愚蠢,适得其反存储日期为“DDMMYYYY”。首先你需要一个varchar(8),而不是DATEDATETIME

最重要的是,你是如何以往任何时候都使用ORDER BY对它进行排序,或使用BETWEEN查询,或做myDate > someValue/myDate < someValue查询?你不能使用格式化日期字符串。

同样的符号,如“DDMMYYYY”是用户接口表示底层。数据库应该几乎从来没有存储用户界面表示,这是一个工作......你猜对了......用户界面。

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

+0

+1;仍有供应商一直以yyyyMMdd格式存储日期为字符串,例如SAP中的[DATS](http://help.sap.com/saphelp_nw70/Helpdata/en/fc/eb2fd9358411d1829f0000e829fbfe/content.htm)存储类型ABAP环境,它用来作为char(8)转到数据库层。虽然这可能是由于历史/向后兼容性/可移植性的原因,并且不推荐,但它表明当然不是每个人都会认为它愚蠢(对于ddMMyyyy,我同意)。 – dlatikay

相关问题