티스토리 뷰
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 |