C#中String与Datetime

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;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值