IBatisNet 关于日期的查询技巧

      IBatisNet 遇到 DateTime 类型,显的不是那么灵活,测试软件过程中总出现日期方面的查询不准确的情况,总结一下日期方面的一下技巧。

  •   如果你想知道你的SQL的真实执行情况,请用事件探查器,不过这里有个技巧就是你的映射文件的写法应该如下:
    Code
     <isNotEmpty prepend="And" property="StartTime">
              
    <![CDATA[
              p.BeginTime  
    >= '$StartTime$'
              ]]
    >
            
    </isNotEmpty>
            
    <isNotEmpty prepend="And" property="EndTime">
              
    <![CDATA[
              p.EndTime
    <= '$EndTime$'
              ]]
    >
     
    </isNotEmpty>
  • 如果不小心写出了下面的这个方式:#StartTime#,查询结果则如下:
    Code
    虽然不影响对结果的查看,但是比较影响心情。还是这种结果更人性化,更易接受:
    Code
  •  当时上面的写法有个问题,这个查询的结果可能不是想要的,改到下面形式可能会更精确:
  • Code
    <isNotEmpty prepend="And" property="StartTime">
              
    <![CDATA[
              p.BeginTime  Between 
    '$StartTime$'
              ]]
    >
            
    </isNotEmpty>
            
    <isNotEmpty prepend="And" property="EndTime">
              
    <![CDATA[
             
    '$EndTime$'
              ]]
    >
            
    </isNotEmpty>
  • 不过这里有个雷,如果控件支持可空的日期,一不小心就踏上雷了

     转载请注明出处:http://www.cnblogs.com/winzheng/archive/2009/01/20/1379068.html

     下班了,明天续。

posted @ 2009-01-20 18:06  winzheng  阅读(729)  评论(0编辑  收藏  举报