Oralce 에서 Trunc, Round 캡 처 날짜, 데이터 사용 방법 안내
3606 단어 데이터 뱅 크
select col_name
from tab_name
where col_time >= to_date(to_char(sysdate, 'YYYY-MM-DD'), 'YYYY-MM-DD')
and col_time > to_date(to_char(sysdate, 'YYYY-MM-DD'), 'YYYY-MM-DD') + 1
방금 이 문 구 를 보고 나 는 웃 었 다. 이 형 제 는 무엇 을 하고 있 습 니까? 날 짜 를 먼저 문자열 로 바 꾼 다음 에 이 문자열 을 날짜 로 바 꾸 었 습 니까?
자세히 보 니 이 형 제 는 해 야 할 일이 있 었 습 니 다. 그날 의 기록 을 조회 하 는 것 은 그날 0 시 0 분 0 초부 터 기록 을 놓 치면 안 됩 니 다!
이 문 구 는 좀 길 어서 최적화 할 수 있 습 니 다. 구체 적 인 것 은 바로 Trunc 와 Round 입 니 다!
1. 숫자 를 매개 변수 로 한다.
Trunc (number [, 소수 자릿수]: 직접 캡 처 하고 반올림 등 작업 을 하지 않 습 니 다.
Round (number [, 소수 자릿수]: 캡 처 하 는 동시에 반올림 작업 을 합 니 다.
소수
몇 가지 예 를 들다.
// 89.98 89.99
select trunc(89.985, 2), round(89.985, 2) from dual;
// 89.9 90
select trunc(89.985, 1), round(89.985, 1) from dual;
// 89.9 89.9
select trunc(89.945, 1), round(89.945, 1) from dual;
// 89 90
select trunc(89.985, 0), round(89.985, 0) from dual;
// 89 90
select trunc(89.985), round(89.985) from dual;
// 80 90
select trunc(89.985, -1), round(89.985, -1) from dual;
// 0 100
select trunc(89.985, -2), round(89.985, -2) from dual;
예 를 들 어 딱 봐 도 알 겠 어 요. JAVA 의 floor, round 와 몇 점 닮 았 어 요!!
2. 시간 작 루 파라미터
공식 홈 페이지 두 개:
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/functions218.htm
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/functions253.htm#i1002084
첫 번 째 홈 페이지 는 내 가 설명 하고 싶 은 것 은 용법 이 고, 두 번 째 홈 페이지 는 차이 점 이다.
Trunc(date[, fmt]), Round(date[, fmt])
형식 은 기본적으로 날짜, 즉 dd 입 니 다.
년, 월, 일, 시, 분, 초 없 음
Trunc 도 직접 캡 처 하여 높 은 곳 에 1 조작 을 추가 하지 않 습 니 다 (반올림 과 유사).
Round 는 1 을 추가 할 수 있 습 니 다. 땡:
시간의 달 이 7 월 1 일 을 넘 으 면 연 1 을 추가 합 니 다.
시간의 날 이 16 일 을 넘 으 면 월 에 1 을 추가 합 니 다.
다른 건 안 넣 어.
아래 도 몇 가지 예 이다.
select trunc(to_date('20100715-10:15:17', 'YYYYMMDD-HH24:MI:SS'), 'MM'),
round(to_date('20100715-10:15:17', 'YYYYMMDD-HH24:MI:SS'), 'MM')
from dual;
select trunc(to_date('20100716-10:15:17', 'YYYYMMDD-HH24:MI:SS'), 'MM'),
round(to_date('20100716-10:15:17', 'YYYYMMDD-HH24:MI:SS'), 'MM')
from dual;
select trunc(to_date('20100616-10:15:17', 'YYYYMMDD-HH24:MI:SS'), 'YYYY'),
round(to_date('20100616-10:15:17', 'YYYYMMDD-HH24:MI:SS'), 'YYYY')
from dual;
select trunc(to_date('20100716-10:15:17', 'YYYYMMDD-HH24:MI:SS'), 'YYYY'),
round(to_date('20100716-10:15:17', 'YYYYMMDD-HH24:MI:SS'), 'YYYY')
from dual;
select trunc(sysdate,'yyyy'), round(sysdate, 'yyyy') from dual;
select trunc(sysdate,'mm'), round(sysdate,'mm') from dual;
select trunc(sysdate,'dd'), round(sysdate,'dd') from dual;
select trunc(sysdate,'HH24'), round(sysdate,'HH24') from dual;
select trunc(sysdate,'MI'), round(sysdate,'MI') from dual;
결과적으로 여러분 스스로 시험 해 보 세 요. 조건 은 제 가 모두 준 비 했 습 니 다. 운행 하면 됩 니 다. 여러분 도 그들 사이 의 차 이 를 진정 으로 이해 하 게 하 세 요!
시작
처음 SQL 을 다시 쓸 수 있 습 니 다.
to_date(to_char(sysdate, 'YYYY-MM-DD'), 'YYYY-MM-DD')
trunc (sysdate, DD) 일 수도 있 고, trunc (sysdate) 일 수도 있 습 니 다.
하지만 이 친구 의 의도 에 따라 라운드, 하하 하지 않 는 게 좋 을 것 같 아 요.
본문 끝 ~ ~ ~ ~ ~ ~ ~ ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx websocket ip_해시 규칙프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다. 프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다. spring.profiles.active=de...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.