자주 사용되지만 그 이상으로 자주 헷갈리는 날짜api 정리.
현재날짜, 시간을 반환. (yyyy-mm-dd hh:mm:ss)
SELECT NOW();
SELECT SYSDATE();
// 결과: 2022-05-26 17:58:16
단, now()
, SYSDATE()
는 시간을 측정하는 시점이 다른데,
now()
는 해당 쿼리문이 최초실행될 때의 시각을 한번만 반환
SYSDATE()
는 SYSDATE()
가 호출될 때마다 새로운 값을 리턴하므로 예측이 어렵다는 특징을 가진다.
특히 한 쿼리문 내에서 여러번 사용될 때 차이가 가장 두드러지게 된다.
이해가 어렵다면 링크를 참고할 것.
간단히 이해하자면 특별한 경우가 아닌 이상 항상 now()
를 사용한다고 생각하면 된다.
mariaDB공식문서 sysdate
mariaDB공식문서 now
현재날짜를 반환. (yyyy-mm-dd)
SELECT CURDATE();
// 결과: 2022-05-26
현재 시간을 반환. (hh:mm:ss)
SELECT CURTIME();
// 결과: 18:00:54
날짜를 특정 format형식의 문자열로 변환하여 반환.
format양식은 종류가 매우 많으니 따로 찾아보거나 독립적인 포스팅을 올릴 것.
사용
DATE_FORMAT(date, format)
SELECT DATE_FORMAT(NOW(), '%y-%m-%d');
// 결과: "SELECT DATE_FORMAT(NOW(), '%y-%m-%d');"
DATE_FORMAT에 대해서는 바로 직전의 포스팅에 따로 정리해두었으니 링크참고. (단, 참고링크의 원문을 보는게 더 나을것같음...)