1. Mysql 함수(1)     -바닥부터 배우는 Mysql -

 

NOW()

CURDATE()

CURTIME()

UNIX_TIMESTAMP()

DATE()

EXTRACT()

DATE_ADD()

DATE_SUB()

DATEDIFF()

DATE_FORMAT()

 

Date 함수:

ColumnName datetime DEFAULT NOW();

ColumnName timestamp DEFAULT CURRENT_TIMESTAMP();

DEFAULT 값은 버전에 따라 적용 방식이 약간씩 다르다. 위의 방식이 무난함.

 

가장 많이 쓰이는 것들

NOW() : 현재 날짜와 시간을 반환한다.

(동의어: CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, LOCALTIME(), LOCALTIME, LOCALTIMESTAMP(), LOCALTIMESTAMP)

 

CURDATE() : 'YYYY-MM-DD', 'YYYYMMDD' 형식으로 현재 날짜를 반환한다.

(동의어: CURRENT_DATE(), CURRENT_DATE)

 

CURTIME() : 'HH:MM:SS', 'HHMMSS' 형식으로 현재 시간을 반환한다.

(동의어: CURRENT_TIME(), CURRENT_TIME)

 

1-1

SELECT NOW(), CURDATE(), CURTIME();

결과

NOW()

CURDATE()

CURTIME()

2017-01-25 18:45:45

2017-01-25

18:45:45

 

1-2

SELECT NOW()+0, CURDATE()+0, CURTIME()+0;

결과

NOW()+0

CURDATE()+0

CURTIME()+0

20170125185148.000000

20170125

185148.000000

 

UNIX_TIMESTAMP(expr): 입력된 datedate/time 값을 UNIXTIME으로 변환한다.

입력된 값이 없으면 현재 시간을 UNIXTIME으로 변환한다. 필드의 데이터 타입으로는 int가 적당하다.

 

DATE(expr) : 입력된 datedate/time 값에서 date 부분을 추출한다.

expr : date/time 형식의 값.

1-3

SELECT date(NOW());

결과

date(now())

2017-01-25

 

SELECT date('2017-01-25 18:45:45');

결과

date('2017-01-25 18:45:45')

2017-01-25

 

EXTRACT(unit FROM date) : date/time에서 year, month, day, hour, minute 등의 어느 한 부분을 추출한다.

unit 값으로 들어갈 수 있는 단위들

MICROSECOND

SECOND

MINUTE

HOUR

DAY

WEEK

MONTH

QUARTER

YEAR

SECOND_MICROSECOND

MINUTE_MICROSECOND

MINUTE_SECOND

HOUR_MICROSECOND

HOUR_SECOND

HOUR_MINUTE

DAY_MICROSECOND

DAY_SECOND

DAY_MINUTE

DAY_HOUR

YEAR_MONTH

 

1-4

SELECT EXTRACT(YEAR FROM NOW()) AS Year,

EXTRACT(MONTH FROM NOW()) AS Month,

EXTRACT(DAY FROM NOW()) AS Day;

결과

Year

Month

Day

2017

1

25

 

DATE_ADD(date, INTERVAL expr type) : 날짜 계산을 수행한다.

DATE_SUB( 날짜 계산을 수행한다.

date: 시작 날짜(DATETIME 또는 DATE ).

expr: 시작 날짜로부터 더하거나 뺀 간격 값을 지정하는 표현(expr는 문자열이다). ('-')로 시작될 수도 있다.

type : 어떻게 해석할지를 지정하는 키워드이다.

INTERVAL 키워드와 type 지정자는 대소문자를 구분하지 않는다.

type 값으로 들어갈 수 있는 단위들

MICROSECOND

SECOND

MINUTE

HOUR

DAY

WEEK

MONTH

QUARTER

YEAR

SECOND_MICROSECOND

MINUTE_MICROSECOND

MINUTE_SECOND

HOUR_MICROSECOND

HOUR_SECOND

HOUR_MINUTE

DAY_MICROSECOND

DAY_SECOND

DAY_MINUTE

DAY_HOUR

YEAR_MONTH

 

1-5

SELECT DATE_ADD(CURDATE(), INTERVAL 30 DAY) AS AfterDate,

CURDATE(),

DATE_ADD(CURDATE(), INTERVAL 30 DAY) AS BeforeDate;

결과

AfterDate

CURDATE()

BeforeDate

2017-02-24

2017-01-25

2017-02-24

 

DATEDIFF(Date1, Date2) : Date1-Date2의 값을 반환한다.

Date1, Date2date 또는 date/time 형식이고 반환 값의 date 부분만 계산된다.

1-6

SELECT DATEDIFF('2016-12-25',NOW()) AS 2016_Xmas,

DATEDIFF('2017-12-25',NOW()) AS 2017_Xmas;

결과

2016_Xmas

2017_Xmas

-31

334

 

DATE_FORMAT(date,format):

format 문자열에 따라 date 값을 출력한다.

format 문자열에는 다음 지정자들이 사용된다.

지정자

설명

%a

요일. 영문 약자. (Sun-Sat)

%b

. 영문 약자. (Jan-Dec)

%c

. 숫자. (0-12)

%D

날짜. 영문 접미사 사용. (0th, 1st, 2nd, 3rd,)

%d

날짜. 두 자리 숫자. (00-31)

%e

날짜, 한 자리 숫자. (0-31)

%f

. Microseconds (000000-999999)

%H

시간. 24Hour (00-23)

%h

시간. 12Hour (01-12)

%I

시간. 12Hour (01-12)

%i

. 두 자리 숫자. (00-59)

%j

날짜. (001-366)

%k

시간. 24Hour (0-23)

%l

시간. 12Hour (1-12)

%M

. 영문 이름. (January-December)

%m

. 두 자리 숫자 (00-12)

%p

AM, PM

%r

시간. 12hour (hh:mm:ss AM or PM)

%S

. Seconds (00-59)

%s

. Seconds (00-59)

%T

24시간. 24-hour (hh:mm:ss)

%U

일요일이 첫날인 주. Week (00-53)

%u

월요일이 첫날인 주. Week (00-53)

%V

일요일이 첫날인 주. %X와 함께 사용 가능.(01-53)

%v

월요일이 첫날인 주. %x와 함께 사용 가능.(01-53)

%W

요일. 영문 이름. (Sunday-Saturday)

%w

주간. 숫자 표기. (0=Sunday, 6=Saturday)

%X

. 네 자리 숫자. 일요일이 첫날인 주 단위로 계산(0000, , 9999). %V와 함께 사용 가능.

%x

. 네 자리 숫자. 월요일이 첫날인 주 단위로 계산(0000, , 9999). %v와 함께 사용 가능.

%Y

. 네 자리 숫자. (0001, , 9999)

%y

. 두 자리 숫자. (01, , 99)

 

1-7

SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'),

DATE_FORMAT(NOW(),'%m-%d-%Y'),

DATE_FORMAT(NOW(),'%d %b %y'),

DATE_FORMAT(NOW(),'%d %b %Y %T:%f');

결과

DATE_FORMAT

(NOW(),'%b %d %Y %h:%i %p')

DATE_FORMAT

(NOW(),'%m-%d-%Y')

DATE_FORMAT

(NOW(),'%d %b %y')

DATE_FORMAT

(NOW(),'%d %b %Y %T:%f')

Jan 25 2017 09:57 PM

01-25-2017

25 Jan 17

25 Jan 2017 21:57:09:000000

 

Date Data 형식:

DATE - format YYYY-MM-DD

DATETIME - format: YYYY-MM-DD HH:MI:SS

TIMESTAMP - format: YYYY-MM-DD HH:MI:SS

YEAR - format YYYY 또는 YY

Posted by star story :

Snippet :: Code View :: "+location.href+'
'+b+"

");top.consoleRef.document.close()}$(".snippet-container").each(function(b){$(this).find("a.snippet-text").click(function(){var d=$(this).parents(".snippet-wrap").find(".snippet-formatted");var c=$(this).parents(".snippet-wrap").find(".snippet-textonly");d.toggle();c.toggle();if(c.is(":visible")){$(this).html("html")}else{$(this).html("text")}return false});$(this).find("a.snippet-window").click(function(){var c=$(this).parents(".snippet-wrap").find(".snippet-textonly").html();a(c);$(this).blur();return false})});$(".snippet-toggle").each(function(b){$(this).click(function(){$(this).parents(".snippet-container").find(".snippet-wrap").toggle()})})});