字段串日期进行比较

来源:互联网 发布:linux 禁用显卡 驱动 编辑:程序博客网 时间:2024/05/22 10:33

引言:

     公司的积分项目的一张表的日期字段是字符串的类型,我需要从库里查出属于一个时间段内容的数据,对字符串的日期需要转换成DateTime类型然后做比较,如何在sql语句里进行查询,小编费了一番功夫。请看下文


过程:

    第一种:    

SELECT CONVERT(varchar(100), GETDATE(), 0) 07 15 2009 4:06PMSELECT CONVERT(varchar(100), GETDATE(), 1) 07/15/09SELECT CONVERT(varchar(100), GETDATE(), 2) 09.07.15SELECT CONVERT(varchar(100), GETDATE(), 3) 15/07/09SELECT CONVERT(varchar(100), GETDATE(), 4) 15.07.09SELECT CONVERT(varchar(100), GETDATE(), 5) 15-07-09

  网上好多人用这种方式进行转换,不过应用到我的项目中查不到数据,不知道为什么,可能我还有理解不到位的地方,参考博客:Sql 中常用日期转换Convert(Datetime)

 

紧接着查询了第二种方法:

    查到这种用法:

     

    SELECT CAST('2011-07-11' AS DateTime)    --输出 2011-07-11 00:00:00.000
 

    这种方式应用到项目中可以实现,但是select cast的用法没有select convert的样式多。


实际应用:

     

 string str = "select * from t_accumulate,t_department,t_user  where  t_accumulate.departmentID=t_department.departmentID and t_accumulate.userID=t_user.userID and t_department.departmentID like concat('%',@departmentID,'%') and t_accumulate.accumulateStates like concat('%',@state,'%') and (select cast(t_accumulate.date as datetime)) BETWEEN (select cast(@startDate as datetime)) and(select cast(@endDate as datetime))";           MySqlParameter[] pars = new MySqlParameter[]            {                new MySqlParameter("@departmentID",departmentID),                new MySqlParameter("@state",state),                new MySqlParameter("@startDate",startDate),                 new MySqlParameter("@endDate",endDate)            };

 这个sql语句主要设计到了三张表联查加两个模糊查询,最后那块是日期的转换。


总结:

    如果需要这种的转换的话,希望有所帮助,后期会详细介绍这两种方法的区别。


0 0
原创粉丝点击