티스토리 뷰
date, date_format 을 사용한 날짜 비교
date, date_format 을 사용하여 날짜 계산, 날짜형변환 메서드를 알아보자
DATE (expr)
먼저 DATE 함수는 표현식, 혹은 datetime 부분의 날짜부분을 추출한다.
Extracts the date part of the date or datetime expression expr.
mysql> SELECT DATE('2003-12-31 01:02:03'); -> '2003-12-31'
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date
DATE_FORMAT( date, format )
지정된 문자열에 따라서 날짜값의 형식을 변환한다. 형식지정자 에서는 '%' 를 사용하는데 '%'는 형식지정자 문자 앞에 사용한다.
Formats the date value according to the format string.
The following specifiers may be used in the format string. The % character is required before format specifier characters.
| Specifier | Description |
|---|---|
%a | Abbreviated weekday name (Sun..Sat) |
%b | Abbreviated month name (Jan..Dec) |
%c | Month, numeric (0..12) |
%D | Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) |
%d | Day of the month, numeric (00..31) |
%e | Day of the month, numeric (0..31) |
%f | Microseconds (000000..999999) |
%H | Hour (00..23) |
%h | Hour (01..12) |
%I | Hour (01..12) |
%i | Minutes, numeric (00..59) |
%j | Day of year (001..366) |
%k | Hour (0..23) |
%l | Hour (1..12) |
%M | Month name (January..December) |
%m | Month, numeric (00..12) |
%p | AM or PM |
%r | Time, 12-hour (hh:mm:ss followed by AM or PM) |
%S | Seconds (00..59) |
%s | Seconds (00..59) |
%T | Time, 24-hour (hh:mm:ss) |
%U | Week (00..53), where Sunday is the first day of the week; WEEK() mode 0 |
%u | Week (00..53), where Monday is the first day of the week; WEEK() mode 1 |
%V | Week (01..53), where Sunday is the first day of the week; WEEK() mode 2; used with %X |
%v | Week (01..53), where Monday is the first day of the week; WEEK() mode 3; used with %x |
%W | Weekday name (Sunday..Saturday) |
%w | Day of the week (0=Sunday..6=Saturday) |
%X | Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V |
%x | Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v |
%Y | Year, numeric, four digits |
%y | Year, numeric (two digits) |
%% | A literal % character |
% | x, for any “x” not listed above |
| Specifier | Description |
|---|
Ranges for the month and day specifiers begin with zero due to the fact that MySQL permits the storing of incomplete dates such as '2014-00-00'.
The language used for day and month names and abbreviations is controlled by the value of the lc_time_names system variable (Section 10.15, “MySQL Server Locale Support”).
For the %U, %u, %V, and %v specifiers, see the description of the WEEK() function for information about the mode values. The mode affects how week numbering occurs.
DATE_FORMAT() returns a string with a character set and collation given by character_set_connection and collation_connection so that it can return month and weekday names containing non-ASCII characters.
mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');
-> 'Sunday October 2009'
mysql> SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');
-> '22:23:00'
mysql> SELECT DATE_FORMAT('1900-10-04 22:23:00',
-> '%D %y %a %d %m %b %j');
-> '4th 00 Thu 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
-> '%H %k %I %r %T %S %w');
-> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
-> '1998 52'
mysql> SELECT DATE_FORMAT('2006-06-00', '%d');
-> '00'https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
날짜범위 계산 SQL Query
1 | WHERE ( DATE(A.date) >= DATE_FORMAT( '2018-08-01', '%Y-%m-01') AND DATE(A.date) <= LAST_DAY('2018-08-01') ) | cs |
'■ Database ■ > MySQL' 카테고리의 다른 글
| IF, ISNULL (0) | 2018.11.22 |
|---|---|
| concat과 time을 사용하여 date 쉽게 변환하기 (0) | 2018.11.13 |
| foreign key (0) | 2018.06.28 |
| Mysql 접속 에러 Host is not allowed to connect to this Mysql server 혹은 Access denied for user (0) | 2018.03.16 |
| Toad for Mysql 에서 다이어그램 만들고 이미지로 내보내기 Create Diagram and Export image (0) | 2016.06.03 |