如何在Asp .Net C#中过滤日期数据?

时间:2016-07-24 07:13:24

标签: c# asp.net sql-server lambda

我已在Sql Server中存储数据,日期以此格式2016-07-25 08:57:03.483存储,并且我给出的数据类型为datetime

现在我想使用日期从数据库中过滤数据。

string startDate = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
string endDate = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
DateTime startDate1 = DateTime.Parse(startDate);
DateTime endDate1 = DateTime.Parse(endDate);

ViewBag.billHistory = db.tbl_electricity.
Where(x.INSRT_TMSP>= startDate1 && x.INSRT_TMSP<= endDate1).ToList();

但是数据没有过滤我做错了什么?

3 个答案:

答案 0 :(得分:0)

创建一个新的DateTime值,并将毫秒组件设置为0:

DateTime dt = DateTime.Now;
dt.AddMilliseconds(-dt.Millisecond);

或者您也可以使用以下日期格式:

string dt= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff",
                                            CultureInfo.InvariantCulture);

答案 1 :(得分:0)

如果db值包含需要忽略的时间部分,则应仅将日期部分比较为

ViewBag.billHistory = db.tbl_electricity.
Where(x.INSRT_TMSP.Date>= startDate1 && x.INSRT_TMSP.Date<= endDate1).ToList();

请参阅How to compare DateTime without time via LINQ?

如果从不需要时间,只需将数据库中的数据类型从 datetime 更改为 date

答案 2 :(得分:-1)

`

通过以下方式将字符串转换为通用时间: Longstring1.value.toUniversalTime()

像这样:

string1.toUniversalTime()

`