问题描述
stringcommand="selectPhoneID,EndTMfromTestReportwhereEndTM=(selectmax(EndTM)fromTestReport)";EndTM是datetime类型的我先执行了这条语句,查到数据库中符合条件的最近的一条数据。然后把查到的EndTM字段的赋值给datetimedt3;然后按照EndTM>dt3继续查询,居然又把刚才的数据查出来了,应该查不到数据才对啊?
解决方案
解决方案二:
EndTM字段我在赋值的时候看到是有毫秒的
解决方案三:
你确定你要查询的时间是精确到毫秒?
解决方案四:
对啊,我把这个字段赋值给一个变量,可以看到有毫秒位。并且,就算是精确到秒了,用“大于”查询,也应该查询不到数据对吗?
解决方案五:
然后按照EndTM>dt3继续查询估计因为你没把毫秒值传进SQL语句里,所以传进去的只有秒而数据库里有毫秒,它当然就大于你传入的值时间转字符串不要直接拼接字符串,也不要直接ToString()改成这样dt3.ToString("yyyy-MM-ddHH:mm:ss.fff")
解决方案六:
打个断点把生成的sql语句拿出来看一看!
时间: 2024-10-26 11:25:29