C#中String与Datetime

来源:互联网 发布:尚学堂大数据课表 编辑:程序博客网 时间:2024/06/06 03:26

datetime类型处理

小编最近遇到一个问题,用lambda表达式查询MySQL数据库中的datetime类型的数据。
数据库

这里写图片描述

前台,是日期时间控件,获取的时间到当天,需要模糊查询,这不是重点。
当数据库中的月份或者天数为1~9时,它就会自动的把前面的0去掉,而且,横杠也会自动转换为斜杠。
比如:2017-04-09 10:43:59,查询出来为2017/4/9 10:43:59

解决方法

前台获取控件中的日期时间,为字符串类型,传到后台的是字符串类型的日期时间:2017-04-09
先将字符串string类型,转换为指定格式的datetime类型,此时,2017-04-09就会变为2017/4/9 00:00:00

yyyy-M-d——1~9月份和日期,前面不加0。yyyy-MM-dd——1~9月份和日期,前面加0

然后,将日期时间类型再转换为string类型,使用截取字符串函数截取空格之前的字符串。

//使用Substring,截取日期string strdate = strdatetime.Substring(0,strdatetime.IndexOf(" "));

或者

//使用split,截取日期string strdate=strdatetime.Split(' ')[0];

最后,进行模糊查询即可。
代码

public List<t_mcoin> QueryRecordID(string UserID, string Date)        {            try            {                //string转换为datetime                DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();                dtFormat.ShortDatePattern = "yyyy-M-d";                DateTime datetime = Convert.ToDateTime(Date, dtFormat);                string strdatetime = datetime.ToString();                //使用Substring,截取日期                string strdate = strdatetime.Substring(0,strdatetime.IndexOf(" "));                //使用split,截取日期                string strdate=strdatetime.Split(' ')[0];                //引用上下文                excellentmcoinEntities DBcontext = new excellentmcoinEntities();                List<DayDetailsViewModel> QueryRecordID = new List<DayDetailsViewModel>();                //数据库中书写的格式,2017-04-05 10:41:26                //数据库中查询出来的格式,2017/4/5 10:41:26                var query = DBcontext.t_mcoin.ToList().Where(d => d.date.ToString().Contains(strdate) && d.userID == UserID).ToList();                //var query = DBcontext.t_mcoin.ToList();                return query;            }            catch (Exception e)            {                throw e;            }        }
0 0
原创粉丝点击