将SQL2005字符型字段转换成为日期时间型后比较大小的代码

来源:互联网 发布:什么是爱 知乎 编辑:程序博客网 时间:2024/04/28 03:07

  一、假设条件
  假设存在如下的表结构以及记录。
  ID       整型的
  Content    字符型的
  AddDateTime  字符型的
  尽管字段AddDateTime是字符型的,但是里面存储的内容完全是日期时间型的,比如:
  2008-1-1 15:30:21
  2009-1-1 15:30:21  
  2010-1-1 15:30:21  
  2011-1-1 15:30:21  
  ……


  二、应用需求
  给定一个日期时间YouDateTime变量,用于对比表中的AddDateTime字段,筛选出YouDateTime大于等于AddDateTime情况下的记录。
  现在的问题是,YouDateTime是日期时间型的,而字段AddDateTime则是字符型的。
  如果直接比较大于,当然会出错。如果将YouDateTime转换成为与AddDateTime一致的字符型,那么,势必造成比较上存在的误差。
  现在,最好的办法就是将AddDateTime字段在查询语句中,将其数据转换成为日期时间型的,这样,就可以和YouDateTime直接比较大小了。由于两者皆是日期时间型的,那么,在比较上,是非常准确的。
  三、转换语句
  根据一二的结论,现在,完整的经过本站验证的语句如下:
  select * from 表的名称 where @YouDateTime >= Cast(AddDateTime As DateTime )
  注意哦,如上的变量YouDateTime,在语句中,最好将其设置成为参数@YouDateTime,否则,容易出错误。
  最后,在语句中,给您的参数@YouDateTime 赋值即可,比如:
  YouDateTime=System.DateTime.Now();
  这样就可以保证万无一失了。当然,以上是使用Cast进行转换的。我们还可以使用Convert.ToDateTime(AddDateTime)来进行转换。转换的方法很多,但是,本站还是推荐您使用Cast进行转换。

 

改自:http://www.dzwebs.net/3154.html

原创粉丝点击