SQL Server 2000 の使用
テーブル
time (varchar)
2
1.5
3
5
2
2.5
...
この 02:00 (HH:MM) のような日時形式で時刻を変換したいのですが、2.5 または 1.5 は 02:30 時間、01:30 時間でなければなりません
期待される出力
time (varchar)
02:00
01:30
03:00
05:00
02:00
02:30
...
SQLでこれを行う方法
SQL クエリのヘルプが必要
SQL Server 2000 の使用
テーブル
time (varchar)
2
1.5
3
5
2
2.5
...
この 02:00 (HH:MM) のような日時形式で時刻を変換したいのですが、2.5 または 1.5 は 02:30 時間、01:30 時間でなければなりません
期待される出力
time (varchar)
02:00
01:30
03:00
05:00
02:00
02:30
...
SQLでこれを行う方法
SQL クエリのヘルプが必要
実際には、これははるかに簡単かもしれません (またはCAST
することができます)time
datetime
CAST(DATEADD(SECOND, n * 60, 0.0) as time)
varchar
しかし、実装が必要な場合
LTRIM(CAST(n as int))
+ RIGHT('0' + LTRIM(CAST((n % 1) * 60) as int), 2)
あなたの番号はどこですかn
。
LTRIM
は、数値を に変換する簡単な方法として使用されvarchar
ます。で時間の部分を取得し、 から残りの時間CAST
n
を取得し、 で分に変換します。次に、分を小数点以下を切り捨て、左にゼロを使用してパディングして、幅が正確に 2 文字になるようにします。int
n
* 60
CAST
int
RIGHT
これを試して
create table t(tim varchar(10))
insert into t
VALUES('2'),('1.5'),('3'),('5'),('2'),('2.5')
select LEN(LEFT(tim,CHARINDEX('.',tim,1))),tim,CASE WHEN CHARINDEX('.',tim,1)>0 then
CASE WHEN LEN(LEFT(tim,CHARINDEX('.',tim,1)-1))=1 then '0'+LEFT(tim,CHARINDEX('.',tim,1)) else LEFT(tim,CHARINDEX('.',tim,1)) end +':'+cast(cast((cast(right(tim,len(tim)-CHARINDEX('.',tim,1)) as int)*60.0)/10 as int) as varchar)
else '0'+tim+':00' end from t