我已在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();
但是数据没有过滤我做错了什么?
答案 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)
`
通过以下方式将字符串转换为通用时间:
Long
或string1.value.toUniversalTime()
string1.toUniversalTime()
`