字段串日期进行比较

引言:

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


过程:

    第一种:    

SELECT CONVERT(varchar(100), GETDATE(), 0) 07 15 2009 4:06PM
SELECT CONVERT(varchar(100), GETDATE(), 1) 07/15/09
SELECT CONVERT(varchar(100), GETDATE(), 2) 09.07.15
SELECT CONVERT(varchar(100), GETDATE(), 3) 15/07/09
SELECT CONVERT(varchar(100), GETDATE(), 4) 15.07.09
SELECT 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
    收藏
    觉得还不错? 一键收藏
  • 34
    评论
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值