文字列の最後の 2 桁を変換して乗算する必要があります。
これどうやってするの?
私の数式は (x * 60) / 100 です
DECLARE @find varchar(30)
SET @find = '16,81'
SELECT @find
必要な値は 16,48 です
文字列の最後の 2 桁を変換して乗算する必要があります。
これどうやってするの?
私の数式は (x * 60) / 100 です
DECLARE @find varchar(30)
SET @find = '16,81'
SELECT @find
必要な値は 16,48 です
端数を時間と分に変換するためだと思いますか?
最後の 2 文字を取得し、それを にキャストしint
、計算を行って にキャストし直しvarchar
、前にゼロを追加して、最後の 2 文字を取得します。そうすれば、たとえ 10 未満であっても、結果は常に 2 文字になります。
SELECT
left(@find, 3) +
right('0' + cast(cast(right(@find, 2) as int) * 60 / 100 as varchar(2)), 2)
入力16,81
により結果が得られ16,48
ます。のような入力16,15
で結果が得られ16,09
ます。
DECLARE @find varchar(30)
SET @find = '16,81'
SELECT @find
SELECT SUBSTRING(@find, 0, LEN(@find)-1) + CONVERT(VARcHAR(2),CONVERT(INT,RIGHT(@find,2)) * 60 / 100)
正しい値が常に 2 文字であると仮定する 1 つの方法を次に示します。そうでない場合は、コンマを見つけて(常に単一のコンマがあると仮定して)、「2」の代わりにそれを使用できます。
DECLARE @find varchar(30)
SET @find = '16,81'
SELECT left(@find, len(@find) - 2) + convert(varchar(2), (right(@find, 2) * 60) / 100)
2 桁を超える可能性があると仮定CHARINDEX
して、コンマを見つけるために使用します。
SELECT left(@find, charindex(',',@find)) + convert(varchar(100), (right(@find, len(@find) - charindex(',',@find)) * 60) / 100)
これを探していますか?
select cast(right(@find, 2) as int)*60/100