드로우홀릭 더베이직

시간 입력 및 계산에 대한 질문입니다.

2019.06.20 06:22:44 조회 수 3532 추천 수 0

안녕하세요?


모든 근무자들에 대해 일일 근무 시작 시간과 끝나는 시간이 있습니다. 시간은 제각기고요.

이런 상황에서 매번 시간을 계산해야 하는 일이 생깁니다. 총 시간이든, 일일 시간이든요. 

그런데 입력을 짧은텍스트 (00:00)로 받아서 저장이 된 상태라 이 자료를 숫자로 변경한 후에 계산하는 방식으로 해야 합니다.

입력을 시간으로 받을 수 있는 방법이 있는지 궁금합니다. 그럼 텍스트를 숫자로 변환하는 과정을 거치지 않고, 시간은 시간대로 빼거나 더해주면 되지 않을까요?

만들어 보지는 않고 질문만 드려서 송구합니다.


답변에 미리 감사드립니다.


profile

돌직구

2019.06.20 22:43:54
*.165.242.137

입력을 시간으로 받는다면.. 폼이 있다는 말씀이지요?

그 폼에 텍스트상자를 하나 만들어 두시고.. 시간을 입력받는다면 '형식' 속성에 'hh:nn:ss' 라고 입력해 두세요.

그러면 그 텍스트 상자는 시간 데이터를 입력 받습니다.


시간 계산은 DateDiff 라는 함수를 사용합니다. 도움말 찾아 보시고요.


근무시간 계산할 때, 보통 '일'과 '시간'을 분리해서 입력하는데..

'일'과 '시간'을 한 칸으로 하는 것이 좋습니다.

날짜와 시간을 합쳐서 한 번에 입력하는 것이 좋다는 말씀입니다.

그러나 이것은 계산에 좋다는 뜻이고..


입력하는 사람 입장에서는 날짜와 시간을 분리해서 입력하는 것이 편하죠.

그러면 텍스트 상자를 두 개 만듭니다. 하나는 날짜 입력, 하나는 시간 입력이죠.

날짜 입력 텍스트 상자에는 형식 속성을 'yyyy-mm-dd'와 같이 입력해 두면 역시 날짜만 들어갑니다.


그 다음 제3의 텍스트 상자를 만들고 계산식을 

= 1텍스트상자 + 2텍스트상자 


이런 식으로 하면 제3의 텍스트 상자에는 날짜와 시간이 모두 들어갑니다.

DateDiff 함수를 제3의 텍스트 상자의 값을 이용해서 적용하면 간단하게 근무시간이 기록됩니다.


날짜와 시간을 분리하면, 근무시간 계산식이 매우 복잡해 집니다.

밤 12시를 넘겨서 근무한 경우, 근무종료시-근무시작시+24시간 해 줘야 하는 등의 처리를 해야 하기 때문입니다.

반면, 날짜와 시간을 하나로 하면, DateDiff 함수를 이용해서 간단히 처리할 수 있지요.


이번 주는 제가 출장이라, 다음 주 중에 예제를 하나 만들어서 올려 놓겠습니다. (TD21 정보 DB에 올려 놓겠습니다.)

클로이

2019.06.23 00:07:36
*.181.194.31

자세한 설명에 감사드립니다. 그런데 datediff의 리턴값은 항상 integer인가 봅니다. 그럼 시간을 계산한 결과가 6.5와 같이 소수점이 포함될 경우는 이 함수를 적용하지 못하겠어요? 제가 이해한 것이 맞는지요?

profile

돌직구

2019.06.24 11:19:58
*.165.242.137

6.5의 단위가 무엇인지 궁금하네요.

만약 '시간' 이라면 '분'으로 datediff를 계산해야 합니다.

그 다음 60으로 나눈 값을 최종 결과로 해야겠지요.

datediff는 '시간' 단위로 계산한다면, 예를 들어 오후 1시와 오후 1시 59분은 0으로 계산합니다.

오후 1시 59분과 2시는 1로 계산하고요.

따라서, 어느 정도의 정확도로 계산할지를 결정하는 것이 우선입니다.


'분'단위 정확도가 필요하다면 '초'단위로 계산해야 합니다.

클로이

2019.06.23 02:10:58
*.181.194.31

테스트를 해보고 싶어서 테스트db를 만들었는데 제가 datediff를 잘못 이해하고 있는 것 같네요. 결과가 안 나오고 #NAME? 이라고 뜹니다. 파일 첨부합니다. 고맙습니다.Database2.accdb

첨부
profile

돌직구

2019.06.24 11:22:56
*.165.242.137

첨부한 파일에 보면 다음과 같이 식을 작성하셨네요.

=DateDiff([hour],[w1_et],[w1_st])


다음과 같이 작성하셔야 합니다.

=DateDiff("h",[w1_et],[w1_st])

클로이

2019.06.25 03:27:28
*.212.65.7

네, 가르쳐주신대로 수정하니까 값이 잘 나옵니다. 고맙습니다!

List of Articles
번호 제목 글쓴이 날짜sort 조회 수
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31088
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 27402
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 22917
356 엑셀 업로드 폼 만들기 오류발생 문제해결 조언 부탁드립니다 file 1 엑세스00 2019-11-20 627
355 액세스 무따 2016에서 링크된 페이지가 없어졌나봐요 ㅜ 대하 2019-11-13 840
354 엑세스2013 무조건따라하기 내용중 질문이 있습니다. file 1 매일야근 2019-10-05 20125
353 액세스 DB 파일 용량 문제 문의 드립니다. 4 바남풍 2019-08-26 24247
352 TFaccess 설치중 마지막 단계에서 진행을 못하고 있습니다. file 1 대하 2019-08-09 2065
351 무따2010 p.229 비고 필드 file 3 클로이 2019-07-11 2676
350 액세스 동강 재수강 혜택(?) 1 클로이 2019-07-09 3065
349 동일한 테이블로 만든 두 개의 폼 file 2 클로이 2019-07-09 2653
348 각각의 앱에 리본 메뉴를 만들어 배포하는 경우 1 클로이 2019-07-09 2572
347 통화 필드에 단위($ 또는 \)표시가 저장 안 되게 할 수 있을까요? 3 클로이 2019-07-04 25122
346 크로스탭 쿼리를 이용한 조회폼 만들기 file Michael 2019-06-27 4937
345 튜터링 무료이용권 2 클로이 2019-06-25 3110
344 쿼리문 : select절의 일부가 working안됩니다. 2 prince12 2019-06-24 3073
» 시간 입력 및 계산에 대한 질문입니다. 6 클로이 2019-06-20 3532
342 크로스탭에서 변수 불러오기 file 10 Michael 2019-06-19 3775
341 웹앱을 조회용으로만 활용하고 싶은 경우에... 1 클로이 2019-06-09 2861
340 ADP 지원이 2013부터 안된다고 하셨는데요.. 1 클로이 2019-06-09 2880
339 Access 2013으로 매크로함수를 이용하여 앱을 개발할 경우... 1 클로이 2019-06-08 3954
338 액세스2013 무작정따라하기에서 궁금한 게 있습니다 1 deneb 2019-06-05 2670
337 데스크탑DB를 만든 후에 웹앱으로 컨버전이 되는지요? 1 클로이 2019-06-05 2686


  주소  12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2021-경기하남-1166 호  [사업자 정보 확인]
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.