有你在真好 的个人博客
关于.net中的System.DateTime.Now与SQL Server中的getDate()的格式化
阅读:2109 添加日期:3/22/2021 4:07:19 PM
"

以前一直都喜欢在储存过程中用这种方法来比较时间是否相同。

比如说@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") ,就可以搞定了。


"