날짜 및 시간 처리 기능
날짜 및 시간은 해당 데이터 유형과 특수 형식으로 저장되므로 빠르고 효과적으로 정렬 또는 필터링할 수 있으며 물리적 저장 공간을 절약할 수 있습니다. .
일반적으로 애플리케이션은 날짜와 시간을 저장하는 형식을 사용하지 않으므로 날짜 및 시간 함수는 항상 이러한 값을 읽고 조작하는 데 사용됩니다. 이러한 이유로 날짜 및 시간 함수는 MySQL 언어에서 중요한 역할을 합니다.
다음 표에는 일반적으로 사용되는 날짜 및 시간 처리 기능이 나열되어 있습니다.
지금은 데이터를 필터링할 위치를 검토할 좋은 시간입니다. 지금까지 숫자와 텍스트를 비교하는 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';
출력:
분석: 이 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';
출력:
분석: where, between The 연산자는 2005-09-01 및 2005-09-30을 일치시킬 날짜 범위로 정의하는 데 사용됩니다.
수치 처리 기능
수치 처리 기능은 수치 데이터만 처리합니다. 이러한 함수는 일반적으로 주로 대수, 삼각 또는 기하학적 연산에 사용되므로 문자열 또는 날짜-시간 처리 함수만큼 자주 사용되지 않습니다.
아이러니하게도 주요 DBMS의 기능 중 수치함수가 가장 일관되고 균일하다. 다음 표에는 일반적으로 사용되는 수치 처리 함수가 나열되어 있습니다.
위 내용은 날짜 및 시간 처리 기능과 수치 처리 기능의 예(데이터 처리 기능의 사용법 2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!