데이터 유형으로 시간에 "시간"열이 있습니다.시간 데이터 형식 SQL Server에서 산술 연산?
해당 열의 값의 25 %를 가져와야합니다.
도와주세요. 나는 해결책을 찾기 위해 벽에 머리를 치고 있었다.
데이터 유형으로 시간에 "시간"열이 있습니다.시간 데이터 형식 SQL Server에서 산술 연산?
해당 열의 값의 25 %를 가져와야합니다.
도와주세요. 나는 해결책을 찾기 위해 벽에 머리를 치고 있었다.
TIME
을 부동 소수점 값으로 변환해야합니다. 할 다음 역 변환을
DECLARE @d time = '03:00:00';
SELECT CONVERT(float, CONVERT(datetime, @d)) * 0.25 -- this will be 25% of the value in float
을 그리고 : Data type conversion table에 따르면 당신이 그렇게, DATETIME
를 통해 할 수
DECLARE @f float = 0.03125; -- this is result of previous select.
SELECT CONVERT(time, CONVERT(datetime, @f)) -- Result = 00:45:00
따라서, 귀하의 질의에는 다음과 같습니다
SELECT ResultTime = CONVERT(time, CONVERT(datetime, (CONVERT(float, CONVERT(datetime, TimeColumn)) * 0.25)))
FROM Table
이 DEMO보기
당신은 천사입니다 @ 루슬란 Veselov. 엄청 고마워!!!!! –
날짜를 플로트로 변환
DECLARE @d time =getdate()
print @d
SELECT CONVERT(float , CONVERT(datetime, @d)) * 0.25
그는 'TIME' 데이터 유형의 열을 가지고 있습니다. 그래서 그는 시간을 부유시킬 수 없습니다. 그리고'DATE '와'FLOAT'_ 사이의 _ 변환은 허용되지 않습니다. –
확실하지 당신이 얻을 수있는 최선의 대답은,하지만 난 한 쿼리에서 그것을했다 : http://sqlfiddle.com/#!3/01b3f/7
declare @time NUMERIC
set @TIME=(select cast(replace(replace(cast(cast(getdate() as time) as varchar),':',''),'.','') as NUMERIC)*.25)
IF LEN(@TIME)=12 BEGIN
SELECT '0'+SUBSTRING(CAST(@TIME AS VARCHAR(20)),0,2)+':'+SUBSTRING(CAST(@TIME AS VARCHAR(20)),3,2)+':'+SUBSTRING(CAST(@TIME AS VARCHAR(20)),5,2)+'.'+SUBSTRING(CAST(@TIME AS VARCHAR(20)),7,13)
END
ELSE
SELECT SUBSTRING(CAST(@TIME AS VARCHAR(20)),0,2)+':'+SUBSTRING(CAST(@TIME AS VARCHAR(20)),3,2)+':'+SUBSTRING(CAST(@TIME AS VARCHAR(20)),5,2)+'.'+SUBSTRING(CAST(@TIME AS VARCHAR(20)),7,13)
이 나를 위해 일한 : 여기
SELECT CONVERT(TIME,
CONVERT(DATETIME,
CONVERT(FLOAT,
CONVERT(DATETIME, field))/4))
은 바이올린의
select convert(varchar, dateadd(s, datediff(s, '00:00:00' , t) * .25, '00:00:00'), 8)
해당 열의 값은 03:00:00입니다. 3 시간을 의미합니다 –