C#使用SQL数据库按照时间查询方法及注意事项

来源:互联网 发布:足球进球数据统计网站 编辑:程序博客网 时间:2024/06/05 21:00


一.时间上传格式问题

开始上传时我们用的是: string sTime = DateTime.Now.ToString();

出现问题:在时间小于10点是会出现:2014-1-16 8:55:22,而我们期望和最利于我们查询的的格式应该为:2014-01-16 08:55:22;这里有两个地方有问题,一个是月份是1,而不是01,这样我们就会出现一种情况,在你查询1月16日的数据时可能会出现11月6日的数据;第二个是小时为8而不是08,虽然说8和08在我们后面查询时影响可能不会太大,但我们为了确保正确性,还是推荐修改为08;

所以我们修改一下上传的时间格式:

后来改为: string sTime = DateTime.Now.ToString("yyyy'-'MM'-'dd' 'HH':'mm':'ss");

这样上传的所有时间都是统一格式,不会出现月份小于10,或者小时小于10时只有一位数的情况,从而使查询时更加方便,正确;

某些电脑上面可能在小时小于10时用第一种格式还是会出现08,09这种情况,但大部分电脑上面还是8.9,具体原因不是很情况,估计跟电脑上面的时间格式有关,为了确保一致性,我们还是选择第二种格式吧!


二..现在用的查询方法

a.查询某一天的时间

        /// <summary>        /// 某一天查询        /// </summary>        /// <param name="RowName">列名</param>        /// <param name="CYear">测试年</param>        /// <param name="CMouth">测试月</param>        /// <param name="CDay">测试日</param>        /// <returns>返回的语句(没有AND)</returns>        public string fnCheckTestTime(string RowName,string CYear,string CMouth,string CDay)        {            string strBack = "";            strBack +=RowName+ " >" + " '"+CYear+"-"+CMouth+"-"+CDay+"' ";            strBack += " AND ";            strBack += RowName + " <" + " '" + CYear + "-" + CMouth + "-" + CDay + "23:59:59' ";            return strBack;        }
b.时间段查询

        /// <summary>        /// 时间段查询,        /// </summary>        /// <param name="RowName">列名</param>        /// <param name="CBeginYear">开始年</param>        /// <param name="CBeginMouth">开始月</param>        /// <param name="CBeginDay">开始日</param>        /// <param name="CEndYear">结束年</param>        /// <param name="CEndMouth">结束月</param>        /// <param name="CEndDay">结束日</param>        /// <returns>返回查询语句(前面没有AND)</returns>        public string fnBegin_End_Time(string RowName, string CBeginYear, string CBeginMouth, string CBeginDay, string CEndYear, string CEndMouth, string CEndDay)        {            string strBack="";            //前面加个空格以免出现语句报错            string strBegin = " "+RowName + ">" + "'" + CBeginYear + "-" + CBeginMouth + "-" + CBeginDay + "'";            string strEnd=RowName + "<" + "'" + CEndYear + "-" + CEndMouth + "-" + CEndDay + "23:59:59"+"'";            strBack += strBegin + " AND " + strEnd;            return strBack;        }

上面的查询方法中月份和天数小于10的都应该为01.02.03。。。这种格式,且“23:59:59”,23前面不能有空格,我就是加过空格出现过查询 10点以前的数据的情况;

0 0
原创粉丝点击