-1

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 クエリのヘルプが必要

4

2 に答える 2

2

実際には、これははるかに簡単かもしれません (またはCASTすることができます)timedatetime

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 文字になるようにします。intn* 60CASTintRIGHT

于 2012-07-29T07:40:36.400 に答える
0

これを試して

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
于 2012-07-29T09:30:02.563 に答える