3.1 날짜 및 시간 작업을 위한 기능 목록

날짜 및 시간은 데이터베이스에 저장되는 가장 일반적인 데이터 유형 중 하나입니다. 그렇기 때문에 그들과 함께 작업하는 기능 목록이 매우 큽니다. 다음은 가장 인기 있는 것입니다.

# 기능 설명
1 CURDATE() 현재 날짜를 반환합니다.
2 커타임() 현재 시간을 반환
지금(), 현지시간() 현재 날짜와 현재 시간을 반환합니다.
4 년도() 날짜에서 연도 반환
5 월() 날짜에서 월을 반환합니다.
6 요일(), 요일() 날짜에서 일을 반환합니다.
7 시간() 시간에서 시간만 반환
8 분() 시간에서 분을 발표
9 두번째() 시간에서 초를 반환
10 요일명() 요일의 이름을 반환합니다: Monday, ...
열하나 MONTHNAME() 월 이름 반환: January, ...
12 주() 날짜에서 주를 반환합니다.
13 주일() 요일의 숫자를 반환합니다: 월요일 - 0, 화요일 - 1
14 위코피이어() 해당 연도의 주 번호를 반환합니다.
15 DAYOFWEEK() 요일의 숫자를 반환합니다: 일요일 - 1, 월요일 - 2
16 DAYOFYEAR() 연도의 날짜를 반환합니다: 1-366
17 날짜() "datetime" 개체에서 날짜만 반환합니다.
18 주소() 날짜에 요일을 더합니다.
19 날짜() 날짜에서 일을 뺍니다.
20 추가시간() 때를 더하다
21 서브타임() 시간에서 시간을 뺍니다

기능을 사용하는 방법을 더 쉽게 이해할 수 있도록 일부러 기능을 작은 그룹으로 그룹화했습니다. 아래에서 우리는 각 그룹에서 하나의 기능을 고려할 것입니다.

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html 링크에서 날짜 및 시간 작업을 위한 전체 함수 목록을 찾을 수 있습니다.

3.2 함수 호출

그건 그렇고, 우리는 많은 함수를 배우고 있기 때문에 연산자 SELECTFROM. 모든 식의 값을 반환할 수 있습니다. 템플릿에 의해 제공되는 일반적인 보기:

SELECT expression

그리고 어떤 함수를 호출하려면 다음과 같은 코드를 작성해야 합니다.

SELECT function(options)

SELECT아래에서는 테이블에 의존하지 않고 연산자 작동에 대한 몇 가지 예를 제공합니다 .

# 요구 결과
1 1+1 선택 2
2 선택 13 모드 5
랜드 선택() 0.20771444235715497
4 CURDATE 선택() 2022-06-04
5 시간 선택() 00:06:02
6 지금 선택() 2022-06-04 00:06:43

그리고 보시다시피 위의 표에서 현재 날짜와 시간을 얻으려면 함수 중 하나를 사용해야 합니다.

  • CURDATE()– 현재 날짜
  • CURTIME()- 현재 시간;
  • NOW()– 현재 날짜 및 시간.

3.3 연도 및 월별로 데이터 그룹화

직원을 위한 작업이 포함된 작업 테이블을 떠올려 봅시다. 이 표에서 연도별로 작업을 그룹화해 보겠습니다. 이를 위해 YEAR()전달된 날짜에서 연도를 반환하는 함수를 사용합니다.

쿼리의 첫 번째 버전은 다음과 같습니다.

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    deadline
FROM task

이 쿼리의 결과는 다음과 같습니다.

ID employee_id 이름 년도 마감 시간
1 1 프런트엔드의 버그 수정 2022년 2022-06-01
2 2 백엔드의 버그 수정 2022년 2022-06-15
5 커피를 사다 2022년 2022-07-01
4 5 커피를 사다 2022년 2022-08-01
5 5 커피를 사다 2022년 2022-09-01
6 (없는) 사무실을 청소하다 (없는) (없는)
7 4 즐거운 삶 (없는) (없는)
8 6 즐거운 삶 (없는) (없는)

모든 행의 연도가 같은 것을 볼 수 있으므로 연도와 월의 두 필드를 사용하겠습니다. 쿼리의 두 번째 버전은 다음과 같습니다.

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    MONTH(deadline) AS month,
    deadline
FROM task

이 쿼리의 결과는 다음과 같습니다.

ID employee_id 이름 년도 마감 시간
1 1 프런트엔드의 버그 수정 2022년 6 2022-06-01
2 2 백엔드의 버그 수정 2022년 6 2022-06-15
5 커피를 사다 2022년 7 2022-07-01
4 5 커피를 사다 2022년 8 2022-08-01
5 5 커피를 사다 2022년 9 2022-09-01
6 (없는) 사무실을 청소하다 (없는) (없는) (없는)
7 4 즐거운 삶 (없는) (없는) (없는)
8 6 즐거운 삶 (없는) (없는) (없는)

연도 및 월별로 작업을 그룹화하는 방법은 설명하지 않겠습니다. 이미 이것을 공부했습니다. 연산자 사용 GROUP BY.