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
운영게시판
최근게시물
PostgreSQL Q&A 4639 게시물 읽기
No. 4639
TIMESTAMP 기초 질문..
작성자
qoqo
작성일
2003-03-24 21:36
조회수
1,515

t=> SELECT CREATETIME FROM JOB ;

----------------------------

2003-03-21 16:47:10.745464

2003-03-21 17:18:32.250878

2003-03-21 17:22:58.46943

2003-03-21 17:25:23.986582

2003-03-21 17:38:52.777189

2003-03-23 16:02:26.046521

2003-03-23 18:11:04.488831

 

실제 데이터틀이 위와같이 시분초 까지 있어서인지

 

SELECT * FROM JOB WHERE createtime = '2003-03-21'

 

위의 쿼리를 실행하면 데이터가 없는 걸로 검색이 됩니다.

시분초를 무시하고 2003-03-21의 데이터를 셀렉트 할려면 어떻해야

하나요?

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

인덱스를 사용한다면,

SELECT * FROM JOB WHERE createtime between '2003-03-21 00:00:00' and '2003-03-21 23:59:59'

이런 형태로 하면 그 인덱스를 사용할 것이고,

 

그냥 단순히 아무 생각 없이 서버 부하를 전혀 생각하지 않고, 속도도 전혀 생각하지 않고, 검색할 요량이라면, 형변화자를 사용해서,

 

SELECT * FROM JOB WHERE createtime::date = '2003-03-21'

이런 형태로 사용하면 될 것이고,

 

좀더 고급 기법을 원하시면,

먼저 함수결과 자체를 인덱스를 만들고,

create index job_createtime_i on job (to_char(createtime, 'YYYY-MM-DD'));

 

select * from job where to_char(createtime,'YYYY-MM-DD') = '2003-03-21'

 

이런 형태면 인덱스도 타고, 쿼리도 단순(?)해지고 하겠지요.

김상기(ioseph)님이 2003-03-25 13:52에 작성한 댓글입니다.

고마워요 ^^

질문자님이 2003-03-27 15:14에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4642초보 Shell Script 질문입니다. [2]
박민훈
2003-03-27
1421
4641distinct 관련 질문입니다. [2]
노인철
2003-03-26
1480
4640postgre 포팅 [1]
dasi
2003-03-25
1359
4639TIMESTAMP 기초 질문.. [2]
qoqo
2003-03-24
1515
4638웹에서 인서트가 안되요.... [3]
여준성
2003-03-24
1136
4637다중 primary key 걸기 [1]
박기원
2003-03-24
1519
4634이런 error메세지의 처리 방법을 알려주세요. [1]
박근준
2003-03-20
1220
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다