database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29159 게시물 읽기
No. 29159
[쿼리질문] 숫자단위로 표시되는 날짜필드에 쿼리 관련??
작성자
쿼리의어려움
작성일
2009-07-16 09:09
조회수
6,375

안녕하세요 이제 막 Mysql 업무를 시작하는 쿼리 초보 입니다.

고수 선배님들의 많은 도움 부탁 드려요 :-)



저희 회사에서 쓰고 있는 Mysql Ver. 5.0.67 을 쓰고 있으며 특정 필드에는 날짜를 표시하는 필드가 있습니다.


날짜를 표시하는 필드에는 20090716123000 과 같이 년,월,일,시,분,초 단위까지 숫자로 표시하게 되어 있는데요


들어온 날짜와 나간 날짜를 표시하는 필드가 있습니다. 원하는 Data는 10초 이상 이면서 30분 이내 에 해당하는 쿼리 결과를 아래와 같이 사용하였습니다.


select dbSubmissionTime,dbDeliveryTime from sms_history_09071323 where (dbDeliveryTime - dbSubmissionTime > 10) and (dbDeliveryTime - dbSubmissionTime <= 1800);


결과로는


dbSubmissionTime    dbDeliveryTime

20090713002359         20090713002404      --> 실제 도착한 시간은 5초 이나 날짜로 인식못하고 숫자로 인식되어 이와 같은 5초 이내 결과 값도 다수 포함

20090713005000         20090713010000     --> 실제 도착한 시간은 10분 이나 마찬가지 숫자로 인식하여 5000으로 보여져 쿼리 결과의 포함 안됨


위와 같은 문제로 해당 필드의 결과 값을 날짜로 정확히 인식할 수 있는 방법이 있을까요? ㅠ


이 글에 대한 댓글이 총 3건 있습니다.

TIME_TO_SEC 과 TIMEDIFF 함수를 조합하면 원하시는 결과를 얻을 수 있습니다.

(TIMEDIFF에서 A, B 인자를 조절하시면, 음수가 아닌 양수를 얻으실 수 있겠죠?)


아래 링크와 예제를 참고하세요.


http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_time-to-sec


http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timediff




mysql> SELECT TIMEDIFF( 20090713005000, 20090713010000 );

+--------------------------------------------+

| TIMEDIFF( 20090713005000, 20090713010000 ) |

+--------------------------------------------+

| -00:10:00                                  |

+--------------------------------------------+

1 row in set (0.00 sec)

mysql> SELECT TIME_TO_SEC( TIMEDIFF( 20090713005000, 20090713010000 ) );

+-----------------------------------------------------------+

| TIME_TO_SEC( TIMEDIFF( 20090713005000, 20090713010000 ) ) |

+-----------------------------------------------------------+

|                                                      -600 |

+-----------------------------------------------------------+

1 row in set (0.00 sec)

mysql>

박현우(lqez)님이 2009-07-16 15:57에 작성한 댓글입니다.

아니면 그냥 UNIX_TIMESTAMP 쓰셔도 됩니다.


http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_unix-timestamp

mysql> select unix_timestamp( 20090713005000 ) - unix_timestamp( 20090713010000 );
+---------------------------------------------------------------------+
| unix_timestamp( 20090713005000 ) - unix_timestamp( 20090713010000 ) |
+---------------------------------------------------------------------+
|                                                                -600 |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

박현우(lqez)님이 2009-07-16 17:09에 작성한 댓글입니다.

아 unix_timestamp 쓰면 되는군요 ㅠ


현우님 덕분에 잘 해결되었네요 ㅠ


인제 저 TIMEDFF 란 놈을 통해 결과값에 추가 할 수 있는지도 알아봐야겠네요


복받으실거에요 :-)


그럼 좋은 하루 되세요~

쿼리의어려움님이 2009-07-17 11:19에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
29186파일만으로 mysql 복구 [1]
빌라트
2009-07-21
6127
29179[질문]이런 쿼리가 가능한가요? [1]
Beginer
2009-07-20
5534
29160MYSQL Front 를 이용할 경우 SQL 문
최규진
2009-07-17
5700
29159[쿼리질문] 숫자단위로 표시되는 날짜필드에 쿼리 관련?? [3]
쿼리의어려움
2009-07-16
6375
29158데이타베이스를 서취하는 쿼리를 가르쳐 주십시오 [1]
초보라서
2009-07-16
5625
29157#1064 - 'SQL 구문에 오류가 있습니다.' 에러 같읍니다. [3]
최규진
2009-07-15
139522
29156정렬방법 [1]
김성민
2009-07-15
5484
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.027초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다