이전 포스트에 이어서 작성하는 내용입니다.
2022.02.07 - [공부/mysql] - Mysql 기본명령어 9 (문자열 연산)
이번에는 날짜 연산입니다.
표준 SQL에서는 CURRENT_TIMESTAMP라는 함수로 시행할 수 있습니다. 이는 현재 접속하고 있는 하드웨어 상의 시스템 시계에서 명령어를 입력한 순간 즉각적으로 알 수 있는 일시적인 데이터를 반환합니다. ('시스템 날짜'라고 합니다)
물론 이는 데이터에 직접 접근하는 형식이 아니기에 인수를 지정할 필요가 없습니다.
따라서 다음과 같은 명령어를 입력하면 현시점의 시스템 날짜를 반환하게 됩니다.
SELECT CURRENT_TIMESTAMP;
날짜 데이터를 활용하는 법으로는, CURRENT_TIMESTAMP를 활용하여 데이터 베이스에 현 시간과 데이터를 같이 입력하여 저장할 수 있을 것입니다.
또한, 날짜 순서를 입력하는 방식은 국가별로 다릅니다.
YYYY/MM/DD
YYYY-MM-DD
DD-MM-YYYY
이렇게 다양한 형태의 날짜 표시가 있는데, 이를 변환할 수 있는 명령어로는 TO_DATE가 있습니다.
# Oracle에서 지원하는 함수
SELECT TO_DATE(SYSDATE, 'YY/MM/DD')
>>>
'22/02/07'
# mySQL
SELECT DATE_FORMAT(NOW(), '%y/%m/%d')
>>>
'22/02/07'
SELECT DATE_FORMAT(NOW(), '%Y/%m/%d')
>>>
'2022/02/07'
여기에 대한 더 많은 내용은 다음 링크를 참고하면 된다.
https://www.w3schools.com/sql/func_mysql_date_format.asp
한편, 날짜를 더하거나 빼는 방법도 가능하다.
먼저, 날짜 차이를 계산하는 법이다.
SELECT DATEDIFF('2022-02-07','2000-01-01');
SELECT DATEDIFF('2000-01-01','2022-02-07');
이런 형태의 명령어를 입력하게 되면, 다음과 같이 출력된다.
DATEDIFF 함수는 두 날짜의 차이를 계산하는 것으로 DATEDIFF(a, b)를 보면, a-b의 날짜를 계산해주는 것이다.
만약 SELECT CURRENT_DATE + INTERVAL 1 DAY;를 하게 된다면, 오늘 기준 날에 +1일을 한 형태가 출력되게 된다.
'공부 > mysql' 카테고리의 다른 글
Mysql 기본명령어 12 (INSERT) (0) | 2022.02.09 |
---|---|
Mysql 기본명령어 11 (CASE) (0) | 2022.02.08 |
Mysql 기본명령어 9 (문자열 연산) (0) | 2022.02.07 |
Mysql 기본명령어 8 (수치 연산) (0) | 2022.01.27 |
Mysql 기본명령어 7 (LIMIT, OFFSET) (0) | 2022.01.27 |
댓글