pobiblue 2015.11.23 15:35 Views : 4055
데이터가 vrchar타입으로 4자리로 0739, 0737, 0732 ,0736, 0739.....
이렇게 있을경우 평균시간대를 구하고 싶은데..
어떻게 해야할까요?
2015.11.23 16:49
DATETIME 이란게 1900-01-01 00:00:00이 0을 기준으로 하루가 지나면 1 이 더해집니다.
소수점 이상은 일수 소수점 이하는 시간을 나타냅니다..
위에 찍인 값들을 소수점으로 나타내어 본다면
select convert(float, convert(DATETIME, '1900-01-01 07:39:00')) -> 0.31875
select convert(float, convert(DATETIME, '1900-01-01 07:37:00')) -> 0.3173
select convert(float, convert(DATETIME, '1900-01-01 07:32:00')) -> 0.313
select convert(float, convert(DATETIME, '1900-01-01 07:39:00')) -> 0.318
평균을 구해보면
select ( 0.31875 + 0.3173 + 0.313 + 0.318) / 4 -> 0.316
데이트타임으로 바꿔보면
SELECT CONVERT(DATETIME, ( 0.31875 + 0.3173 + 0.313 + 0.318) / 4) -> 1900-01-01 07:36:08.280
7시 36분 8초가 평균값이겠네요.
더좋은 방법도 있을듯 ㅠㅠ
cmd_comment_vote_user Upvote0 Downvote0
Keep me signed in.
DATETIME 이란게 1900-01-01 00:00:00이 0을 기준으로 하루가 지나면 1 이 더해집니다.
소수점 이상은 일수 소수점 이하는 시간을 나타냅니다..
위에 찍인 값들을 소수점으로 나타내어 본다면
select convert(float, convert(DATETIME, '1900-01-01 07:39:00')) -> 0.31875
select convert(float, convert(DATETIME, '1900-01-01 07:37:00')) -> 0.3173
select convert(float, convert(DATETIME, '1900-01-01 07:32:00')) -> 0.313
select convert(float, convert(DATETIME, '1900-01-01 07:39:00')) -> 0.318
평균을 구해보면
select ( 0.31875 + 0.3173 + 0.313 + 0.318) / 4 -> 0.316
데이트타임으로 바꿔보면
SELECT CONVERT(DATETIME, ( 0.31875 + 0.3173 + 0.313 + 0.318) / 4) -> 1900-01-01 07:36:08.280
7시 36분 8초가 평균값이겠네요.
더좋은 방법도 있을듯 ㅠㅠ