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 함수 호출
그건 그렇고, 우리는 많은 함수를 배우고 있기 때문에 연산자 SELECT가 FROM. 모든 식의 값을 반환할 수 있습니다. 템플릿에 의해 제공되는 일반적인 보기:
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.
GO TO FULL VERSION