[英]sql datetime to compare with string
如果我具有以下訪問sql數據庫的日期,以將其與用戶輸入的字符串進行比較:
public IQueryable<Audit> FindAllAuditsByNameDate(String name, String date)
{
return from audit in db.Audits
where audit.EventTime.ToString().Contains(date) && audit.User.UserName.Contains(name)
orderby audit.User.UserName
select audit;
}
如果用戶在日期中輸入“ /”字符,它將失敗。 我該如何解決?
嘗試DateTime.Parse
。 它能夠理解許多用於輸入DateTimes的常見格式。
DateTime dateStart = DateTime.Parse(date);
DateTime dateEnd = dateStart.AddDays(1);
return from audit in db.Audits
where audit.EventTime >= dateStart &&
audit.EventTime < dateEnd &&
audit.User.UserName.Contains(name)
orderby audit.User.UserName
select audit;
如果DateTime.Parse
沒有解析所需的格式,則可以始終使用DateTime.ParseExact
並提供自己的格式字符串。
考慮到EventTime是DateTime類型的嗎? 您需要對照其值進行檢查。 首先將字符串日期轉換為DateTime
DateTime newDate = Convert.ToDateTime(date);
return from audit in db.Audits
where audit.EventTime.Value == newDate && audit.User.UserName.Contains(name)
orderby audit.User.UserName
select audit;
警告-請勿使用Contains
。
假設我有兩個列表對象。
List 1 List 2
1 12
2 7
3 8
4 98
5 9
6 10
7 6
public IQueryable<Audit> FindAllAuditsByNameDate(String name, String date)
{
DateTime Dt;
if (DateTime.TryParse(date, out Dt))
{
return from audit in db.Audits
where audit.EventTime.ToString().Contains(date) && audit.User.UserName.Contains(name)
orderby audit.User.UserName
select audit;
}
return null;
}
- 返回一個布爾值,指示它是否成功。
- 它只是在內部嘗試/捕獲為什么沒有例外的實現,因此速度很快。
- 如果值可能是InValid,請使用它。
- 引發異常。
- 如果您確定該值將有效,請使用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.