|
님의 방식대로 할 경우...
SEC_TO_TIME
TIME_TO_SEC
은 없는 함수라도 나오는군요..
ㅡ.ㅡ;
V6 님이 쓰신 글 :
: Query를 사용한 방법입니다.
:
: TDataSet *pDS;
: pDS = DBGrid->DataSource->DataSet;
:
: pDS->Close();
: pDS->SQL->Clear();
: pDS->SQL->Add("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(DATETIME))) FROM 테이블명 WHERE 조건식");
: pDS->ExecSQL();
: AnsiString SumTime = pDS->Fields->Fields[0]->AsString;
:
: Query말고 다른 컴포넌트를 사용하시면 아래 SQL 명령어를 사용하시면 됩니다.
: 자세히 보시면 아주 쉽습니다.
:
: SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(DATETIME))) FROM 테이블명 WHERE 조건식
:
: TIME_TO_SEC(DATETIME) //여기서 DATETIME 은 필드명
: 시간을 초로 환산해 주는 SQL 함수입니다.
:
: SUM(필드명)
: 필드명의 레코드 합을 구하는 SQL 함수입니다.
:
: SEC_TO_TIME(초)
: 초를 시간으로 환산해 주는 SQL 함수입니다.
:
: 위 함수 세가지를 한꺼번에 사용한 겁니다.
:
: #주의 : 이렇게 하면 쿼리된 실제 필드명이 SEC_TO_TIME(SUM(TIME_TO_SEC(DATETIME))) 이렇게 나옵니다.
:
: 그리고 쿼리된 값을 읽을 때는 두가지 방법이 있습니당.
:
: 첫번째
: pDS->Fields->Fields[0]->AsString;
: 이 말은 쿼리결과 값의 첫번째(0) 필드의 값을 스트링으로 읽은거구요.
:
: 두번째는 실제 필드명을 대입하는겁니다. 필드명이 너무 길어서...
: pDS->Fields->FieldByName("SEC_TO_TIME(SUM(TIME_TO_SEC(DATETIME)))")->AsString;
:
:
:
:
: 아래는 MySQL에서 쿼리한 값을 화면저장한 내용 입니다. 참고하세용.
:
: mysql> SELECT DATETIME FROM test WHERE POS = 'X';
: +----------+
: | DATETIME |
: +----------+
: | 10:12:20 |
: | 11:22:43 |
: | 09:02:03 |
: | 02:42:22 |
: +----------+
: 4 rows in set (0.00 sec)
:
: mysql> SELECT TIME_TO_SEC(DATETIME) FROM test WHERE POS = 'X';
: +-----------------------+
: | TIME_TO_SEC(DATETIME) |
: +-----------------------+
: | 36740 |
: | 40963 |
: | 32523 |
: | 9742 |
: +-----------------------+
: 4 rows in set (0.00 sec)
:
: mysql> SELECT SUM(TIME_TO_SEC(DATETIME)) FROM test WHERE POS = 'X';
: +----------------------------+
: | SUM(TIME_TO_SEC(DATETIME)) |
: +----------------------------+
: | 119968 |
: +----------------------------+
: 1 row in set (0.00 sec)
:
: mysql> SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(DATETIME))) FROM test WHERE POS = 'X';
: +-----------------------------------------+
: | SEC_TO_TIME(SUM(TIME_TO_SEC(DATETIME))) |
: +-----------------------------------------+
: | 33:19:28 |
: +-----------------------------------------+
: 1 row in set (0.00 sec)
:
:
:
:
:
: 이상 V6 였습니다.
: 즐프프프프
:
:
:
:
:
:
: 초보 님이 쓰신 글 :
: :
: : DATA Field 는 DATETIME입니다.
: :
: : 그중에 시간 정보만 입력이 됩니다.
: :
: : 특정 기간 동안 이 시간 필드의 값들을 더해서 출력을 하고자 하는데..
: :
: : 그냥 더해버리면..
: :
: : 00:00:00 으로만 나타나버리고
: :
: : 제가 원하는
: :
: : 234:23:00 (234시간:23분:00초) 이렇게 나타나지가 않네요.
: :
: : 어케 해야 할까요..
: :
: : 고수님들의 도움 부탁드립니다.
|