>  기사  >  데이터 베이스  >  날짜 및 시간 처리 기능과 수치 처리 기능의 예(데이터 처리 기능의 사용법 2)

날짜 및 시간 처리 기능과 수치 처리 기능의 예(데이터 처리 기능의 사용법 2)

巴扎黑
巴扎黑원래의
2017-05-05 17:06:411485검색

날짜 및 시간 처리 기능

날짜 및 시간은 해당 데이터 유형과 특수 형식으로 저장되므로 빠르고 효과적으로 정렬 또는 필터링할 수 있으며 물리적 저장 공간을 절약할 수 있습니다. .

일반적으로 애플리케이션은 날짜와 시간을 저장하는 형식을 사용하지 않으므로 날짜 및 시간 함수는 항상 이러한 값을 읽고 조작하는 데 사용됩니다. 이러한 이유로 날짜 및 시간 함수는 MySQL 언어에서 중요한 역할을 합니다.

다음 표에는 일반적으로 사용되는 날짜 및 시간 처리 기능이 나열되어 있습니다.

날짜 및 시간 처리 기능과 수치 처리 기능의 예(데이터 처리 기능의 사용법 2)

지금은 데이터를 필터링할 위치를 검토할 좋은 시간입니다. 지금까지 숫자와 텍스트를 비교하는 where 절을 사용하여 데이터를 필터링했지만 데이터를 날짜별로 필터링해야 하는 경우가 많습니다. 날짜별로 필터링하려면 몇 가지 추가 고려 사항과 특수 MySQL 기능을 사용해야 합니다.

가장 먼저 주목해야 할 점은 MySQL에서 사용하는 날짜 형식입니다. 테이블 값을 삽입 또는 업데이트하거나 where 절을 사용하여 필터링하는 등 날짜를 지정할 때마다 날짜는 yyyy-mm-dd 형식이어야 합니다. 따라서 2005년 9월 1일은 2005-09-01로 지정됩니다. 다른 날짜 형식이 작동할 수도 있지만 이는 모호성을 배제하기 때문에 선호되는 날짜 형식입니다(예: 04/05/06은 2006년 5월 4일 또는 4월 5일입니다. 2006년 또는 2004년 5월 6일 또는...).

항상 4자리 연도를 사용해야 합니다. MySQL은 00-69를 2000-2069로, 70-99를 1970-1999로 처리합니다. 의도한 연도일 수도 있지만 MySQL은 어떤 가정도 할 필요가 없기 때문에 전체 4자리 연도를 사용하는 것이 더 안정적입니다.

따라서 기본 날짜 비교는 간단해야 합니다.

입력:

select cust_id,order_num from orders where order_date = '2005-09-01';

출력:

날짜 및 시간 처리 기능과 수치 처리 기능의 예(데이터 처리 기능의 사용법 2)

분석: 이 select 문이 정상적으로 실행됩니다. order_date가 2005-09-01인 주문 레코드를 검색합니다.

그런데 order_date = '2005-09-01'인 곳을 사용하는 것이 믿을만한가요? order_date의 데이터 유형은 datetime입니다. 이 유형은 날짜 및 시간 값을 저장합니다. 샘플 테이블의 값은 모두 00:00:00의 시간 값을 가지지만 실제로는 항상 그런 것은 아닙니다. 주문 날짜를 현재 날짜와 시간으로 저장하면 어떻게 되나요? 예를 들어 저장된 order_date 값이 2005-09-01 11:30:05인 경우 order_date = '2005-09-01'은 실패합니다. 해당 날짜가 포함된 행이 제공되더라도 where 일치가 실패하므로 검색되지 않습니다.

해결책은 주어진 날짜를 전체 열 값과 비교하는 대신 주어진 날짜를 열의 날짜 부분과만 비교하도록 MySQL에 지시하는 것입니다. 이를 위해서는 date() 함수를 사용해야 합니다. Date(order_date)는 MySQL에게 열의 날짜 부분만 추출하도록 지시합니다. 보다 신뢰할 수 있는 select 문은 다음과 같습니다.

입력:

select cust_id,order_num from orders where Date(order_date) = '2005-09-01';

원하는 것이 날짜뿐이라면 Date( )은 해당 열에 날짜만 포함되어 있다는 것을 알고 있더라도 좋은 습관입니다. 이렇게 하면 어떤 이유로 나중에 테이블에 날짜 및 시간 값이 있는 경우 SQL 코드를 변경할 필요가 없습니다. 물론, 단지 시간을 원할 때 사용해야 하는 Time() 함수도 있습니다.

Date()와 Time()은 모두 MySQL 4.1.1에서 처음 도입되었습니다.

날짜와의 동등성을 테스트하는 방법을 알고 나면 다른 연산자의 사용이 명확해질 것입니다.

그러나 설명해야 할 또 다른 종류의 날짜 비교가 있습니다. 2005년 9월에 접수된 모든 주문을 검색하려면 어떻게 해야 합니까? 간단한 동일성 테스트는 해당 월의 일 수도 일치해야 하기 때문에 작동하지 않습니다. 여러 가지 솔루션이 있으며 그 중 하나는 다음과 같습니다.

입력:

select cust_id,order_num from orders where Date(order_date) between '2005-09-01' and  '2005-09-30';

출력:

날짜 및 시간 처리 기능과 수치 처리 기능의 예(데이터 처리 기능의 사용법 2)

분석: where, between The 연산자는 2005-09-01 및 2005-09-30을 일치시킬 날짜 범위로 정의하는 데 사용됩니다.


수치 처리 기능

수치 처리 기능은 수치 데이터만 처리합니다. 이러한 함수는 일반적으로 주로 대수, 삼각 또는 기하학적 연산에 사용되므로 문자열 또는 날짜-시간 처리 함수만큼 자주 사용되지 않습니다.

아이러니하게도 주요 DBMS의 기능 중 수치함수가 가장 일관되고 균일하다. 다음 표에는 일반적으로 사용되는 수치 처리 함수가 나열되어 있습니다.

날짜 및 시간 처리 기능과 수치 처리 기능의 예(데이터 처리 기능의 사용법 2)

위 내용은 날짜 및 시간 처리 기능과 수치 처리 기능의 예(데이터 처리 기능의 사용법 2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.