SQL Server 날짜 함수 CAST 와 CONVERT 및 업무 중 사용 설명

2800 단어 CASTCONVERT
최근 에 클 라 이언 트 에서 백 스테이지 로 넘 어가 서 서 서 비 스 를 썼 습 니 다.백 스테이지 데이터 베이스 와 서비스 에 대한 작성 은 완전히 소 백 이기 때문에 최근 에 쓴 것 은 기술적 인 함량 이 많 지 않 을 것 입 니 다.먼저 발생 한 문 제 를 내 놓 습 니 다.아니면 그 잘못된 보고서 입 니까?필드 는 주로 잘못된 ID(ErrorID),신고 자(ReportPerson),신고 시간(ReportTime)이 밀리초 까지 정확 합 니 다.지금 해 야 할 통 계 는 다음 과 같 습 니 다.(1)통계 일정 시간 동안[시작 시간 에서 밀리초 까지 정확 합 니 다](beginTime,endTime)모든 사람 이 매일 보고 하 는 오류 갯 수(2)는 일정 시간 동안[시작 시간 부터 정확 한 달 까지](beginTime,endTime)매달 모든 사람 이 보고 한 오류 총 수 를 통계 한다.문 제 를 보고 가장 먼저 생각 나 는 것 은 group by ReportPerson 입 니 다.모든 사람의 통계 데 이 터 를 계산 할 수 있 지만 요구 에 이 르 지 못 했 습 니 다.모든 사람의 매일 통계 데 이 터 를 얻어 야 합 니 다.저 같은 풋내기 에 게 는 좀 귀 찮 습 니 다.어떻게 해 야 할 지 모 르 겠 습 니 다.sql 군 에서 고 수 를 찾 아 시간 형식 을 정 해 야 한다 고 알려 주 었 습 니 다.그리고 시간 양식 을 하늘 과 달 로 한정 하면 이 두 가지 문 제 는 해결 된다.전편 에 서 는 이미 여러 시간 함 수 를 나열 하 였 으 며,지금 이 글 에 사용 되 는 CAST 와 CONVERT 에 대해 상세 하 게 소개 하 였 다.먼저 그들의 문법 을 살 펴 보 자.CAST(expression AS datatype [ ( length ) ] ) CONVERT ( data_type[(length)],expression[,style])중:expression:유효한 표현 식 입 니 다.data_type:대상 데이터 형식.xml,bigint,sql 포함variant。 별명 데이터 형식 을 사용 할 수 없습니다.length:대상 데이터 형식의 길 이 를 선택 할 수 있 는 정 수 를 지정 합 니 다.기본 값 은 30 입 니 다.style:convert 함수 가 expression 의 정수 표현 식 을 어떻게 바 꾸 는 지 지정 합 니 다.스타일 이 NULL 이면 NULL 로 돌아 갑 니 다.이 범 위 는 datatype 확실 해 요.본 논문 과 관련 된 것 은 주로 length 와 expression 이다.length 는 목표 유형의 길 이 를 가리 키 며 시간의 정밀 도 를 제한 하 는 데 사용 된다.expression 은 출력 시간 을 제한 하 는 형식 이다.예 를 들 어 yyy/mm/dd/yyy-mm-dd 등 이다.express 에 관 한 지식 과 예 를 들 어 다음 박문 을 참고 할 수 있 습 니 다.https://www.jb51.net/article/33330.htm지금 은 이런 지식 으로 제 문 제 를 해결 하 겠 습 니 다.먼저 일 일 통계 에 따라 보 고 량 을 올 리 고 정확 한 시간 은 CONVERT(varchar(11),ReportTime,20)즉 yy-mm-dd 로 제 한 된 다음 에 group by 문 제 를 이용 하여 해결 되 었 습 니 다.sql 코드 는 다음 과 같 습 니 다.
 
select ReportPerson,CONVERT(varchar(11) , ReportTime , 20 ) as 'ReporTime', count(*) as reportTotal from PCR_ConstructInfo where (ReportTime>'2012-11-15 12:11:12.23')and (ReportTime<'2013-1-16 12:11:12.23') group by ReportPerson,CONVERT(varchar(11) , ReportTime , 20 )
집행 결 과 는 다음 과 같 습 니 다.
또 하나의 문 제 는 매달 모든 사람 이 오 류 량 을 보고 하 는 통 계 를 통계 하 는 것 이다.시간 날 짜 를 월 로 제한 하면 된다.즉,CONVERT(varchar(7),ReportTime,20)yyy-mm 집행 sql 문 구 는 다음 과 같다.
 
select ReportPerson,CONVERT(varchar(7) , ReportTime , 20 ) as 'ReportTime', count(*) as reportTotal from PCR_ConstructInfo where (ReportTime>'2012-11-1')and (ReportTime<'2013-2-1') group by ReportPerson,CONVERT(varchar(7) , ReportTime , 20 )
집행 결 과 는 다음 과 같다.
자,오늘 은 여기까지 하 겠 습 니 다.어떤 대사 가 더 좋 은 방법 이 있다 면 댓 글 을 환영 합 니 다!!

좋은 웹페이지 즐겨찾기