我在sql-server 2005数据库中将时间存储为十进制(9,2)列。
时间表示为
时间间隔内
1H 20Min 1.33
1H 30Min 1.50
等等
我正在寻找一种简单的方法来检查除了整个小时之外的分钟数是否均匀分为5 我希望找到的值是时间是1H:23Min而不是1H:25MIN 我只是想比较一下这部分时间。
我现在的做法是:
RIGHT(CONVERT(varchar(5),DATEADD(minute,ROUND(timeInDecimal * 60,0),0),108),1) not in ('0','5')
但它似乎不是解决这个问题的理想方式。
感觉我可以使用modulo运算符,但是怎么样? 或者有更好的方法吗?
希望快速回答。
亲切的问候
安德烈亚斯
答案 0 :(得分:3)
使用模数运算符,两次:
ROUND((timeInDecimal % 1) * 60, 0) % 5 <> 0
那将: