昨天用Visual Studio 2010 做一个程序,使用的是sql server 2005的数据库,使用Visual Studio 2010 的Database tool 查询分析器执行一个简单的的sql语句
SELECT * FROM tableName s
where cast (replace(CONVERT(varchar,s.C_CREATE_TIME,120),'-','/')as datetime)
>'2011/2/25 15:40:12'
执行的结果如下图:
重查询的结果来看显然是不符合查询条件的,因为“C_CREATE_TIME”是等于“2011/2/25 15:40:12 ”,不满足大于“2011/2/25 15:40:12 ”这个日期的条件,于是怀疑自己的sql语句有问题,是不是日期转换有问题,于是到网上找了其他几种方法,问题依旧,折腾了n久后,于是用SQL Server 2008 Management Studio的查询分析器执行。执行结果如下:
于是我发现问题所在,Visual Studio 2010 的Database tool 查询分析器有关datetime字段没有显示毫秒,显然
“2011/2/25 15:40:12.110”是大于“2011/2/25 15:40:12.000 ”
‘2011/2/25 15:40:12’如果没有毫秒,默认为“2011/2/25 15:40:12.000”,查询的语句没有错,只是Database tool 查询分析器没有显示毫秒,让我误以为查询出错了。
唉,为这小问题,折腾了我半天。在Visual Studio 2010 的设置里也没找到有关在查询分析器里精确显示到毫秒的设置项。
小困扰,大折腾呀。
btw:好久没写技术文章了,感觉都生疏了,以后不能偷懒了,要多写些有关技术的文章。有个朋友都觉得我的博客成了记录我女儿成长的日记本了。
微信扫描下方的二维码阅读本文