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
下班了,明天续。