3 c# datetime entity-framework
有人可以解释它是如何工作的吗?我需要将 SQL Server 中的 DateTime 与用户输入进行比较。
这是我正在寻找的示例:
DateTime[] dates = { DateTime.Now, DateTime.UtcNow };
Console.WriteLine(dates.Where(x => x < DateTime.Now));    // I need to know if they are the same without converting them to strings. 
Console.Read();
我正在使用实体框架,在实体类中Dates,属性是 DateTime,我需要将它与用户的输入进行比较,我找到的唯一解决方案是 CreateDate 函数。
如您所知,我无法直接将 POST 值与 Date 属性进行比较。例子:
db.dates.Where(x => x.StartDate < "2012-02-13 00:00:00.000")    // error, cannot compare DateTime with string
所以,我尝试将值转换为 DateTime:
DateTime start_date = Convert.ToDateTime("2012-02-13 00:00:00.000");
db.dates.Where(x => x.StartDate < start_date )    // PROBLEM!!
为什么?那么,输出start_date是:
2012-02-13 12:00:00 am
但是在数据库中,结束和开始日期如下:
2012-02-13 00:00:00.000    // all have zeros at the end
当输入日期为2012-02-13 00:00:00.000格式时,如何比较日期?
我不在乎使用什么,我只需要相同的格式和相同的数据类型。
我只需要相同的格式
不,你没有。您需要最合适的数据类型,即DateTime(或者可能是DateTimeOffset)并且您需要忘记字符串格式。
“2012-02-13 12:00:00 am”只是该值的不同文本表示,也可以表示为“2012-02-13 00:00:00.000”。两者都代表 2012 年 2 月 13 日的午夜。只要您的数据库字段是合适的DateTime类型,就完全没有关系。你真的不需要担心格式。
您可能需要担心这些值是 UTC 时间还是本地时间,但这是另一回事。
(我个人会使用DateTime.ParseorDateTime.ParseExact而不是Convert.ToDateTime,但这是一个稍微不同的问题。)
| 归档时间: | 
 | 
| 查看次数: | 8276 次 | 
| 最近记录: |