날짜관련 함수 사용법

# YEAR
# %Y [2010]
# %y [10]

# MONTH
# %M [january-december]
# %b jan-dec[]
# %m [01-12]
# %c [1-12]

# DAY
# %D [1st-31th]
# %d [01-31]
# %j [001-365]

#HOUR
# %r [00:00:00-23:59:59 PM]
# %T [00:00:00-23:59:59]
#MINUTE

#SECOND
# %S [00-59]

(예문)
SELECT
now() AS 'now',
YEAR(now()) AS 'year',
MONTH(now()) AS 'month',
DAY(now()) AS 'day',
DAYOFWEEK(now()) AS 'dayofweek',
HOUR(now()) AS 'hour',
MINUTE(now()) AS 'minute',
SECOND(now()) AS 'second',
DATE_FORMAT(now(),'%Y-%m-%d')


 

 


숫자만 들어있는 컬럼이 있는데, 정렬을 해 보니, 

1
11
12
13
2
21

이런씩으로 정렬되는 경우를 본 적이 있을 것이다. 
컬럼의 정의가 INT가 아닌 VARCHAR로 되어 있어서 그런 경우가 있다.
업무상 이렇게 데이터베이스를 설계할 경우도 있으니 잘잘못은 패스~ 하고

이렇경우 어떻게 정렬하면 재대로 표현될까.. 하니...
MySQL에는 (CAST)연산자라는게 있다.

cast type의 종류는 
binary
char
signed (부호있는 숫자)
date
datetime
time
unsigned (부호없는 숫자)
등이 있다.

이용 방법은 

정렬할 때에는 
select * from customers order by cast(customers_id as unsigned);

문자를 숫자로 변환할 때에는
select cast('1' as unsigned) as test
숫자를 문자로 변환할 때에는
select cast(2 as char(1)) as test

이렇게 이용하면 된다.

 


웹페이지에 문자열을 출력할때
상황에 따라 대문자로 혹은.. 소문자로 출력해야 하는 경우가 있다.
단, 알파벳만 대상이 되니.. 주의해야 한다.

PHP는 각 상황에 대한 함수를 제공한다. 단, 알파벳만 대상이 되니.. 주의해야 한다.

string strtolower($str) - 대문자를 소문자로 변환하여 반환한다.

string strtoupper ($str) - 소문자를 대문대로 변환하여 반환한다.

string mb_strtoupper ( string $str [, string $encoding = mb_internal_encoding() ] 
소문자를 대문대로 변환하여 반환한다.
예) mb_strtoupper('john은 외국인이다.', 'UTF-8');

string mb_strtolower ( string $str [, string $encoding = mb_internal_encoding() ] )
문자를 문대로 변환하여 반환한다.
예) mb_strtolower('john은 외국인이다.', 'UTF-8');

이둘은 인코딩을 지정할 수 있다. 지정하지 않으면 내부 문자인코딩을 이용한다.

정확하게는 모르겠는데... 
mb_XXX 이것은 2바이트 문자가 있을때 글자깨짐 방지를 위해 인코딩을 지정할 수 있게 해 둔 함수가 아닌가 생각된다. 
일본어 사이트 개발할 때 문자열 조작할때 글짜깨짐 형상이 발생하여 
mb_XXX 이런 함수로 대체해서 작업한 경험이 있어서... (완전 개인적 생각임,) 

string mb_convert_case ( string $str , int $mode = MB_CASE_UPPER [, string $encoding = mb_internal_encoding() ] )
이 함수도 위의 함수와 비슷한데 
$mode값에 따라 대문자에서 소문자로 소문자에서 대문자로 변환이 가능하다.
(인코딩 지정도 가능하다)

MB_CASE_UPPER(소문자를 대문자로) 
MB_CASE_LOWER(대문자롤 소문자로)
MB_CASE_TITLE(단어별 첫번째 문자를 대문자로) 


그외에 함수로는 

string ucfirst($str) - 문자열의 첫 문자를 대문자로 변환하여 반환 한다. 
string cfirst($str) - 문자열의 첫 문자를 소문자로 변환하여 반환 한다. 
string ucwords($str) - 문자열 중의 단어별 첫 문자를 대문자로 변환하여 반환한다.

등이 있다.

 

+ Recent posts