以前一直都喜欢在储存过程中用这种方法来比较时间是否相同。
比如说@dateA是使用.net的 System.DateTime.Now传进来的当前时间的参数,而@dateB是在数据库中使用
getDate()系统函数得到的当前时间,然后Convert(Varchar(10),@dateA,120)=Convert(Varchar(10),@dateB,120)
来比较时候相等,在今天之前好像这个方法都一直都很奏效,但是刚刚在我的一个储存过程中这个办法出了
问题了,比出来的时间是不相等,为什么呢? 后来一调试,才发现使用从.net中传入的时间参数@dateA转换出来
的当前时间为:2007-12-1 而使用数据库getDate()函数得到的@dateB参数转换出来的时间为:2007-12-01
原来都是那个“天”的格式造成两个时间不相等的,.net中的天为"1",而sql server数据库中的天为"01"。
解决办法其实也简单,在获取.net的当前时间前先格式化下:dateA=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") ,就可以搞定了。