SELECT CURDATE(), CURTIME(), NOW();
MySQL은 DATE, TIME 함수 내에서 쓰이는 것만 해당 날짜와 시간으로 인지
SELECT
'2021-6-1' = '2021-06-01',
DATE('2021-6-1') = DATE('2021-06-01'),
'1:2:3' = '01:02:03',
TIME('1:2:3') = TIME('01:02:03');
SELECT
'2021-6-1 1:2:3' = '2021-06-01 01:02:03',
DATE('2021-6-1 1:2:3') = DATE('2021-06-01 01:02:03'),
TIME('2021-6-1 1:2:3') = TIME('2021-06-01 01:02:03'),
DATE('2021-6-1 1:2:3') = TIME('2021-06-01 01:02:03'),
DATE('2021-6-1') = DATE('2021-06-01 01:02:03'),
TIME('2021-6-1 1:2:3') = TIME('01:02:03');
SELECT * FROM Orders
WHERE OrderDate
BETWEEN DATE('1997-1-1') AND DATE('1997-1-31');
📌 Orders 테이블에서 OrderDate 날짜가 1997-1-1 ~ 1997-1-31 인 데이터
함수이므로 날짜 정보를 인자 안에 넣어서 사용
ex) WEEKDAY(날짜데이터)
SELECT
OrderDate,
YEAR(OrderDate) AS YEAR,
MONTHNAME(OrderDate) AS MONTHNAME,
MONTH(OrderDate) AS MONTH,
WEEKDAY(OrderDate) AS WEEKDAY,
DAYNAME(OrderDate) AS DAYNAME,
DAY(OrderDate) AS DAY
FROM Orders;
SELECT * FROM Orders
WHERE WEEKDAY(OrderDate) = 0;
📌 Orders 테이블에서 월요일(0)인 데이터만 출력
0: 월요일, 1: 화요일, 2: 수요일, 3:목요일, 4:금요일, 5:토요일, 6:일요일
SELECT
HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());
📌 날짜/시간 더하기, 빼기 ( 유저 로그인 정보 만료 기한 )
SELECT
ADDDATE('2021-06-20', INTERVAL 1 YEAR),
ADDDATE('2021-06-20', INTERVAL -2 MONTH),
ADDDATE('2021-06-20', INTERVAL 3 WEEK),
ADDDATE('2021-06-20', INTERVAL -4 DAY),
ADDDATE('2021-06-20', INTERVAL -5 MINUTE),
ADDDATE('2021-06-20 13:01:12', INTERVAL 6 SECOND);
SELECT OrderDate,
ADDDATE(OrderDate, INTERVAL 1 YEAR),
ADDDATE(OrderDate, INTERVAL -2 MONTH),
ADDDATE(OrderDate, INTERVAL 3 WEEK),
ADDDATE(OrderDate, INTERVAL -4 DAY),
ADDDATE(OrderDate, INTERVAL -5 MINUTE)
FROM Orders;
📌 두 시간/날짜 차이
SELECT
OrderDate,
NOW(),
DATEDIFF(OrderDate, NOW())
FROM Orders;
📌 OrderDate과 현재 날짜/시간 과의 일 차이
SELECT
TIMEDIFF('2021-06-21 15:20:35', '2021-06-21 16:34:41');
📌 두 시간의 차이
SELECT * FROM Orders
WHERE
ABS(DATEDIFF(OrderDate, '1996-10-10')) < 5;
📌 OrderDate 과 1996-10-10 일 차이의 절대값이 5보다 작은 데이터
SELECT
OrderDate,
LAST_DAY(OrderDate),
DAY(LAST_DAY(OrderDate)),
DATEDIFF(LAST_DAY(OrderDate), OrderDate)
FROM Orders;
SELECT
DATE_FORMAT(NOW(), '%M %D, %Y %T'),
DATE_FORMAT(NOW(), '%y-%m-%d %h:%i:%s %p'),
DATE_FORMAT(NOW(), '%Y년 %m월 %d일 %p %h시 %i분 %s초');
SELECT REPLACE(
REPLACE(
DATE_FORMAT(NOW(), '%Y년 %m월 %d일 %p %h시 %i분 %초'),
'AM', '오전'
),
'PM', '오후'
)