生活随笔
收集整理的這篇文章主要介紹了
lambda表达式的日期问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近,小編遇到了一個惡心人的問題。
開發使用的MySQL數據庫,底層用的EF映射,查詢使用的linq或者lambda表達式。
頁面中,日期格式
數據中,日期格式datetime類型。
根據日期格式”yyyy-MM-dd”,查詢日期格式”yyyy-MM-dd hh-mm-ss”,看到這里當然是使用模糊查詢Contains。
這還沒有結束,一個惡心人的問題出現了,通過lambda表達式查詢MySQL數據庫中的datetime類型的字段值,查詢出來日期時間中間的字符變為了斜線,而數據庫中的是橫線,
其次,就是查詢出來的月份和天數,如果前面為0的話,它會自動的去掉。
數據庫中的日期
查詢出來的日期
這就惡心了,前臺傳到后臺的Sting類型的datetime,首先需要符號轉換,然后進行判斷,把月份和天數前面的0去掉。
代碼如下:
public List<t_mcoin
> QueryRecordID(
string UserID,
string Date){try{DateTimeFormatInfo dtFormat
= new System
.Globalization
.DateTimeFormatInfo();dtFormat
.ShortDatePattern
= "yyyy-MM-dd";DateTime datetime
= Convert
.ToDateTime(
Date, dtFormat);
String dateformat
= Date.Replace(
"-",
"/");
string month;
string monthstart;
string monthend;
string Strmonth;
string day;
string daystart;
string dayend;
string Strday;month
= dateformat
.Substring(
5,
1);
if (month
== "0"){monthstart
= dateformat
.Substring(
0,
5);monthend
= dateformat
.Substring(
6,
4);Strmonth
= monthstart
+ monthend;day
= Strmonth
.Substring(
7,
1);
if (day
== "0"){daystart
= Strmonth
.Substring(
0,
7);dayend
= Strmonth
.Substring(
8,
1);Strday
= daystart
+ dayend;}
else {Strday
= Strmonth;}}
else {day
= dateformat
.Substring(
8,
1);
if (day
== "0"){daystart
= dateformat
.Substring(
0,
8);dayend
= dateformat
.Substring(
9,
1);Strday
= daystart
+ dayend;}
else {Strday
= dateformat;}}excellentmcoinEntities DBcontext
= new excellentmcoinEntities();
List<DayDetailsViewModel
> QueryRecordID
= new List<DayDetailsViewModel
>();
var query
= DBcontext
.t_mcoin
.ToList()
.Where(d
=> d
.date.ToString()
.Contains(Strday)
&& d
.userID
== UserID)
.ToList();
return query;}catch (Exception e){throw e;}}
總結
以上是生活随笔為你收集整理的lambda表达式的日期问题的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。