2012-05-11 13 views
0

SQL Server 2005データベースに小数(9,2)の列として保存された時間があります。5分で均等に分けられない分を確認する

時間は、全体の時間を除い分の数かどうかを確認する簡単な方法を探して

- 私の
時間timeInDecimal
1H 20分1.33
1H 30分1.50
などのように表されます
私が見つけたいと思っているのは、時間が1H:23Minで、1H:25MINでないところです。
私はちょうど時間の分の部分を比較するwan't。

RIGHT(CONVERT(varchar(5),DATEADD(minute,ROUND(timeInDecimal * 60,0),0),108),1) not in ('0','5') 

しかし、ほとんどこれに対処するための理想的な方法であると思わないん

私は今のやり方があります。

私はこれにモジュロ演算子を使用することができますが、どのように感じるのですか? さらに良い方法がありますか?

迅速な対応を希望します。
種類よろしく
アンドレアス剰余演算子を使用して

答えて

3

、二回:

ROUND((timeInDecimal % 1) * 60, 0) % 5 <> 0 

は以下となります。

  1. は小数部分を取得し、分に変換します。
  2. これを最も近い分(.33時間→20分、19.80ではなく)に丸めます。
  3. 5で割り切れるかどうかを確認してください。
+0

素晴らしい!魅力的な作品! – Andreas

関連する問題