MySQL의 경우
1. DATE / YYYY-MM-DD 형식 / 9999년까지 저장가능
2. DATETIME / YYYY-MM-DD hh:mm:ss 형식 / 9999년까지 저장가능
3. TIMESTAMP / YYYY-MM-DD hh:mm:ss 형식 / 2038년까지 저장가능
TIMESTAMP는 현재DB시간 기록용 말고는 잘 쓰지 않는다.
테이블만들 때 DATETIME(6) 이런식으로 1~6까지의 숫자를 넣으면
초단위 소수점 6자리까지 기록해준다.

이 테이블에서 원하는 날짜를 가져오려면 그냥 문자숫자다루듯 필터링을 주면 된다.
SELECT * FROM blog WHERE 발행일 = '2022-03-10 08:24:25' // 발행일이 저 날짜인 행출력
SELECT * FROM blog WHERE 발행일 > '2022-03-10 08:24:25' // 발행일이 저 날짜 이후인 행출력
등호 부등호를 이용해서 원하는 DATETIME 자료를 가져올 수 있다.
만약 2022년 3월 10일이 찍혀있는 모든 행을 가져오고싶으면
SELECT * FROM blog
WHERE 발행일 >= '2022-03-10 00:00:00'
AND 발행일 < '2022-03-11 00:00:00'
(참고1) BETWEEN '2022-03-10 00:00:00' AND '2022-03-10 23:59:59' 이래도 되는데
요즘 MySQL에서 ms단위까지 저장을 하기 때문에 BETWEEN 쓰면 빵꾸가 날 수 있다.
(참고2) 등호 말고 부등호에서는 발행일 > '2022-03-11' 이렇게 시간 빼먹어도 봐준다.
만약 2022년 3월 10일부터 현재 시간까지 발행된 글들만 출력하고 싶으면
SELECT * FROM blog
WHERE 발행일 > '2022-03-10 00:00:00'
AND 발행일 <= now()
현재시간이 필요하면 now()를 이용해서 현재 날짜/시간을 남길 수 있다.
now()또한 now(6) 이렇게 쓰면 현재 날짜/시간을 초단위 6자리까지 알려준다.
now()와 비슷한 curdate()도 있는데 이건 시간 없이 현재 날짜만 알려준다.
SELECT * FROM blog WHERE date(발행일) = '2022-03-10'
date() 안에 데이터를 넣으면 DATETIME -> DATE 형식으로 바꾸어준다.
그래서 검색시 date() 써도되는데 index를 못쓰는 방법이라 느릴 수 있다.
년-월-일 순으로 출력하는 것이 싫으면 다른걸로 마음대로 바꿀 수 있다.
SELECT date_format(now(),'%Y년 %d일이고 %m월이다.')
date_format()안에 날짜, 아무문자 차례로 집어넣으면 출력형식을 맘대로 바꿔준다.
아무문자 안엔 %Y,%m,%d 맘대로 넣을 수 있는데 각각 그 자리에 년,월,일이 들어간다.
%H,%i,%s로 시,분,초도 넣을 수 있고 요일로 출력가능하다.
INSERT INTO blog VALUES('2030-01-01 12:00:00');
select date_add(last_login,interval 1 year) as 'mau users' from login_record
년도를 더해주는 함수
1) date_add(날짜,interval 1 year);
한 달을 더하고 싶으면 date_add(날짜, interval 1 month);
하루를 더하고 싶으면 date_add(날짜, interval 1 day);
2) select 날짜 + interval 1 year;
select * from login_record
where day(last_login) % 2 = 0 and month(last_login) = 9;
datetime 자료에서 월,일만 뽑고 싶다면
month(), day() 이런거에 넣어주면 된다.