728x90

FORMAT(숫자, 소수점 자릿수)

숫자를 지정한 소숫점 자릿수 까지만 잘라 리턴하며, 1000단위마다 콤마를 표시합니다.

이때 지정한 자리 다음 숫자에 따라 반올림 하여 표현합니다.

1

SELECT FORMAT(1000000.123456, 4);

cs

 

 

 

 

 

BIN(숫자)

숫자를 2진수로 변환합니다.

1

SELECT BIN(16);

cs

 

 

 

 

HEX(숫자 )

숫자를 16진수로 변환합니다.

1

SELECT HEX(16);

cs

 

 

 

 

OCT(숫자)

숫자를 8진수로 표현합니다.

1

SELECT OCT(16);

cs

 

 

 

 

 

ABS(숫자)

절대값을 구합니다.

1

SELECT ABS(16);

cs

 

 

 

 

CEILING(숫자)

숫자를 올림합니다.

1

SELECT CEILING(11.3);

cs

 

 

 

 

FLOOR(숫자)

숫자를 내림합니다.

1

SELECT FLOOR(11.3);

cs

 

 

 

ROUND(숫자)

숫자를 반올림합니다.

1

SELECT ROUND(11.3);

cs

 

 

 

1

SELECT ROUND(11.5);

cs

 

 

 

 

CONV(숫자, 진법, 바꿀 진법)

숫자를 기존의 진법 계산에서 바꿀 진법 계산으로 변경합니다.

1

2

SELECT CONV(111, 2, 10); -- 2진법 111을 10진법으로 변환 >> 7

SELECT CONV(11, 10, 2); -- 10진법 11을 2진법으로 변환 >> 1011

cs

 

 

 

DEGREES(숫자), RADIANS(숫자), PI()

각각 라디안 값을 각도로 변환, 각도를 라디안 값으로 변환, 파이값을 반환합니다.

1

2

3

SELECT DEGREES(3.141592653589793); -- 180

SELECT RADIANS(180); -- 3.141592653589793

SELECT PI(); -- 3.141593

cs

 

 

 

MOD(숫자1, 숫자2), 숫자1 % 숫자2, 숫자1 MOD 숫자2

세 가지 연산 모두 숫자1에서 숫자2를 나눈 나머지 값을 반환합니다.

1

2

3

SELECT MOD(5, 3); -- 2

SELECT 5 % 3; -- 2

SELECT 5 MOD 3; -- 2

cs

 

 

 

POW(숫자1, 숫자2), SQRT(숫자)

거듭제곱 및 제곱근을 구합니다.

1

2

SELECT POW(2, 3); -- 2의 3 제곱 8반환

SELECT SQRT(9); -- 루트 9 3을 반환

cs

 

 

 

RAND()

0이상 1 미만의 실수를 구합니다.

0 ~ 0.99999... 따라서 만약 0 ~ 10까지의 정수만을 구하고 싶은 경우에는 다음과 같이 FLOOR() 함수와 같이 사용합니다.

1

SELECT FLOOR(RAND() * 11);

cs

 

 

 

SIGN(숫자)

숫자가 양수인지, 0인지, 음수인지 구합니다.

양수이면 1, 0이면 0, 음수이면 -1을 반환합니다.

1

2

3

SELECT SIGN(100); -- 1

SELECT SIGN(0); -- 0

SELECT SIGN(-100); -- -1

cs

 

 

 

TRUNCATE(숫자1, 숫자2)

숫자1을 소숫점을 기준으로 숫자2 위치 이외의 값을 버립니다.

1

2

SELECT TRUNCATE(123.456, 1); -- 123.4

SELECT TRUNCATE(123.456, -1); -- 120

cs

 

 

 

ACOS(숫자), ASIN(숫자), ATAN(숫자), ATAN2(숫자), ATAN2(숫자1, 숫자2), SIN(숫자), COS(숫자), TAN(숫자)

삼각 함수입니다.

 

 

 

EXP(X), LN(숫자), LOG(숫자), LOG(밑수, 숫자), LOG2(숫자), LOG10(숫자)

지수, 로그와 관련된 함수입니다.

 

 

 

 

추가 함수 정보

https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html



출처: https://dololak.tistory.com/247 [코끼리를 냉장고에 넣는 방법]

728x90

'프로그래밍 > php' 카테고리의 다른 글

Hierarchical queries in MySQL  (0) 2019.10.04
php 시간 계산  (0) 2013.08.12
PHP $_SERVER 정리  (0) 2013.08.01
Mysql table의 AutoIncrement 값을 가져오기  (0) 2013.07.09
ORACLE, MSSQL, MYSQL 날짜함수 비교  (0) 2012.08.08

728x90

<?php
echo strtotime("now") . "\n"
;
echo 
strtotime("10 September 2000") . "\n"
;
echo 
strtotime("+1 day") . "\n"
;
echo 
strtotime("+1 week") . "\n"
;
echo 
strtotime("+1 week 2 days 4 hours 2 seconds") . "\n"
;
echo 
strtotime("next Thursday") . "\n"
;
echo 
strtotime("last Monday") . "\n"
;
?>

728x90

'프로그래밍 > php' 카테고리의 다른 글

mysql 함수 사용법  (0) 2019.11.26
Hierarchical queries in MySQL  (0) 2019.10.04
PHP $_SERVER 정리  (0) 2013.08.01
Mysql table의 AutoIncrement 값을 가져오기  (0) 2013.07.09
ORACLE, MSSQL, MYSQL 날짜함수 비교  (0) 2012.08.08
728x90

$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치 => /webapp/include


$_SERVER['HTTP_ACCEPT_ENCODING'] = 인코딩 받식 => gzip, deflate


$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 언어 => ko


$_SERVER['HTTP_USER_AGENT'] = 사이트 접속한 사용자 환경 => Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705


$_SERVER['REMOTE_ADDR'] = 사이트 접속한 사용자 IP => xxx.xxx.xxx.xxx

 

$_SERVER['HTTP_REFERER'] = 현제 페이지로 오기전의 페이지주소값 => http://www.test.net/index.php?user=??? (A태그나 form으로 전송시 값이 넘어옴. onclick으로 전송시 값이 넘어오지 않음)


$_SERVER['SCRIPT_FILENAME'] = 실행되고 있는 위치와 파일명 => webapp/include/index.php


$_SERVER['SERVER_NAME'] = 사이트 도메인 => www.test.com (버추얼 호스트에 지정한 도메인)

 

$_SERVER['HTTP_HOST'] = 사이트 도메인 => www.test.com (접속할 때 사용한 도메인)


$_SERVER['SERVER_PORT'] = 사이트가 사용하는 포트 => 80


$_SERVER['SERVER_SOFTWARE'] = 서버의 소프트웨어 환경 => Apache/1.3.23 (Unix) PHP/4.1.2 mod_fastcgi/2.2.10 mod_throttle/3.1.2 mod_ssl/2.8.6 OpenSSL/0.9.6c


$_SERVER['GATEWAY_INTERFACE'] = cGI 정보 => CGI/1.1


$_SERVER['SERVER_PROTOCOL'] = 사용된 서버 프로토콜 => HTTP/1.1


$_SERVER['REQUEST_URI'] = 현재페이지의 주소에서 도메인 제외 =>  /index.php?user=???&name=???


$_SERVER['PHP_SELF'] = 현재페이지의 주소에서 도메인과 넘겨지는 값 제외 = /default/index.php

      *파일명만 가져올때 : basename($_SERVER['PHP_SELF']);


$_SERVER['APPL_PHYSICAL_PATH'] = 현재페이지의 실제 파일 주소 => D:\webapp/

 

$_SERVER['QUERY_STRING'] = get방식의 파일명 뒤에 붙어서 넘어오는 값 => ?user=???&name=??? (반드시get방식으로 넘겨야됨)

 

 

728x90
728x90

Table 구조가 아래와 같을때

key_field  : auto_increment
field(1)
...
field(n)


Key Field를 auto_increment 형태로 하여, Insert를 하던 중

select 문을 이용하여 Where 조건에 key_field 값을 넣었을때, Record가 한개도 존재하지 않는다면, 이경우 이 Data는 원래부터 Insert 되지 않았던 Data였을까? 아니면 Insert후 Delete된 Data일까?

처음엔 간단하게 Max(key_field) 값을 가지고, Key_Field의 Max값보다 작으면 삭제된 데이터,
Key_Field의 Max값보다 큰 값이면, 원래부터 존재하지 않았던 데이터로 구분하면 되지 않을까?
라고 생각했는데, 다시 생각해보니 틀린 생각.

key field field 1 ... key field n
1 data ... data
2 data ... data
3 data ... data
...
98 data ... data
99 data ... data
100 data ... data

위와 같을때, "select max(key field) from 테이블명"을 하게 되면 100이 나오므로, 정상적인 결과를 얻을 수 있겠지만,
99, 100번 레코드를 삭제한후 "select max(key field) from 테이블명"을 하게되면 max값은 98이 나오므로, 실제로 99와 100번 레코드의 경우는 삭제되었음을 알지 못하고, 이전에 입력이 되지 않았던 데이터로 분류되게 된다.

key Field가 Auto_increment 속성을 가지고 있으므로,

show table status where name = '테이블명' 을 이용하면 해당 Table의 Auto_Increment 값을 확인 할 수 있으므로, 이를 이용하여 처리하면 된다.

어쨌든, 설명이 장황한데.... 결론은 결국 원하는 Table의 Auto_Increment 값을 가져오고자 할때 어떻게 할 것인가? 이므로, 위의 사설은 다 집어치우고,
기억해야할 쿼리는 단 한가지.

show table status where name = '테이블명'
728x90

'프로그래밍 > php' 카테고리의 다른 글

php 시간 계산  (0) 2013.08.12
PHP $_SERVER 정리  (0) 2013.08.01
ORACLE, MSSQL, MYSQL 날짜함수 비교  (0) 2012.08.08
php 한글 연동 시 한글 깨짐현상 복구법  (0) 2012.07.06
php Ajax 한글 처리  (0) 2012.04.20
728x90

1. oracle
1.1. 날짜 함수
 [ SYSDATE ]
 sysdate
 -현재 시스템의 날짜 데이터를 반환
 select to_char(sysdate, 'yyyymmddhh24mmss') from dual

 [ ADD_MONTHS ]
 add_months(date, integer)
 -지정한 날짜에서 해당 월에 일정한 정수 (혹은 마이너스 정수)값을 더한 날짜를 반환
 select to_char(add_months(sysdate, -2), 'yyy-mm-dd') from dual

 [ LAST_DAY ]
 last_day(date)
 -해당 월의 마지막 날짜를 반환한다


 [ MONTHS_BETWEEN ]
 months_between(date_1, date_2)
 -date1과 date2의 사이의 기간을 월로 나타내 준다.


1.2. 변환 함수

 [ TO_CHAR ]
 to_char(number, "format")
 -number형 데이타 타입을 문자열로 변환

 [ NVL ]
 nv(ex1, ex2)
 -ex1값이 null이 아니라면 ex1값의, null이라면 ex2 값을 반환


 SimpleDateFormat sb = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss");
 sql문에서 add_day = TO_DATE('"+sb.format(new Date())+"','MM-DD-YYYY HH24:MI:SS')
 또는 add_day = sysdate


2. mssql
2.1. 날짜 함수

 [ GETDATE ]
 -getdate는 현재 시간을 표시해 준다


 [ DATEADD ]
 -dateadd함수는 날자에 지정한 만큼을 더한다
 dateadd(날짜형식, 더할 값, 날짜)


 [ DATEDIFF ]
 -datediff는 두날짜 사이의 날짜 형식에 지정된 부분을 돌려준다.
 datediff(날짜형식, 시작날짜, 끝날짜)


 [ DATENAME ]
 -datename는 지정날짜의 날자형식의 이름을 돌려준다.
 datename(날짜형식, 날짜)


 [ DATEPART ]
 -datepart는 날짜에서 지정한 날짜형식부분만 추출해줍니다.
 datepart(날짜형식, 날짜) : 주일은 일요일부터 1로 시작해서 토요일날 7로 끝나게 된다


2.2. 변환 함수
 [ CONVERT ]
 -문자열 형태로 변환(varchar,datetime,number)
 convert(varchar, 컬럼명)

 

 


3. mysql
3.1. 날짜 함수 
 [ NOW() ]
 [ CURRENT_TIMESTAMP ]
 [ CURRENT_TIMESTAMP() ]
 [ LOCALTIME ]
 [ LOCALTIME() ]
 [ LOCALTIMESTAMP ]
 [ LOCALTIMESTAMP() ]
 -현재 시간을 리턴합니다


 [ SYSDATE() ]
 -'YYYY-MM-DD HH:MM:SS' 또는 'YYYYMMDDHHMMSS' 형식으로 현재 날짜나 시간을 리턴한다
 - SYSDATE()는 실행 시점의 시간을 표시하므로 NOW()와 차이점이 있다


 [ CURDATE() ]
 [ CURRENT_DATE ]
 [ CURRENT_DATE() ]
 -'YYYY-MM-DD' 또는 'YYYYMMDD' 형식으로 현재 날짜를 리턴합니다.


 [ CURTIME() ]
 [ CURRENT_TIME ]
 [ CURRENT_TIME() ]
 -'HH:MM:SS' 또는 'HHMMSS.uuuuuu' 형식으로 현재 시간을 리턴합니다.


 [ DATE_FORMAT(date,format) ]
 -date로 지정된 날짜른 format에 의해 표시합니다.

 기호 설명
 %a Sun, ..., Sat와 같은 요일의 약어 표시
 %b Jan, ..., Dec와 같은 달이름 약어 표시
 %c 1 ~ 12 사이의 월 표시
 %D 1st, 2nd, ... 와 같은 형식의 달의 날짜 표시
 %d 00, ..., 31 형식의 달의 날짜 표시
 %e 0, ..., 31 형식의 달의 날짜 표시
 %f 마이크로초 표시
 %H 24시간 형식의 시간 표시(00, ..., 23)
 %h, %I 12시간 형식의 시간 표시(01, ..., 12 )
 %i 분 표시(00, ..., 59)
 %j 년의 날짜 표시(001, ..., 366)
 %k 24시간 표시(0, ..., 23)
 %l 12시간 표시(1, ..., 12)
 %M 달 이름 표시(Jenuary, ..., December) 3
 %m 달 순서 표시(00, ..., 12)
 %p AM, PM 표시
 %r 12시간제 표시(HH:MM:SS AM or PM)
 %S, %s 초 표시(00, ..., 59)
 %T 24시간제 표시(HH:MM:SS)
 %U 일요일을 시작으로 년의 몇번째 주인가를 00, ..., 53으로 표시한다.
 %u 월요일을 시작으로 년의 몇번째 주인가를 00, ..., 53으로 표시한다.
 %V %X와 함께 쓰여 일요일을 시작으로 년의 몇번째 주인가를 01, ..., 53으로 표시한다.
 %v %x와 함께 쓰여 월요일을 시작으로 년의 몇번째 주인가를 01, ..., 53으로 표시한다.
 %W 요일명 표시(Sunday, ..., Saturday)
 %w 요일의 순서를 표시(0=Sunday, ..., 6=Saturday)
 %X %V와 함께 쓰이며 일요일을 시작하는 주를 기준으로 YYYY 형태의 년도를 표시한다.
 %x %v와 함께 쓰이며 월요일을 시작하는 주를 기준으로 YYYY 형태의 년도를 표시한다.
 %Y YYYY 형식으로 년도를 표시한다.
 %y YY 형식으로 년도를 표시한다.
 %% % 문자를 표시한다.

 

 [ DATEDIFF(expr1,expr2) ]
 -expr1과 expr2 사이의 일 수를 리턴합니다.


 [ TIMEDIFF(expr1,expr2) ]
 -expr1과 expr2 사이의 시간을 time 형식으로 리턴합니다.

 mysql new date();

728x90

'프로그래밍 > php' 카테고리의 다른 글

PHP $_SERVER 정리  (0) 2013.08.01
Mysql table의 AutoIncrement 값을 가져오기  (0) 2013.07.09
php 한글 연동 시 한글 깨짐현상 복구법  (0) 2012.07.06
php Ajax 한글 처리  (0) 2012.04.20
mysqldump 사용하기  (0) 2012.04.18
728x90

PHP 파일을 제작할 경우 한글이 깨지는 경우는 대표적으로 3가지 경우가 있다.

1. 아파치의 언어설정문제.

2. PHP 를 제작한 에디터의 언어설정 문제

3. 웹브라우저의 언어표시형식 문제.

여기서는 아파치의 설정을 변경하여서 한글깨짐 현상을 수정하는 방법을 알아보겠다.

아파치의 언어정보가 담겨있는 파일 (httpd-languages.conf) 을 연다.

경로는 다음과 같다.

아파치 설치폴더 -> conf -> extra

파일을 적당한 편집기(메모장 등)로 열어서 DefaultLanguage 를 검색한다.

만약 DefaultLanguage 오른쪽에 kr 이 아닌 다른것이 있다면

DefaultLanguage kr

이렇게 수정한다.

그리고 조금 아래쪽으로 내려와 보면 LanguagePriority 라는 항목이 있는데, 다양한 언어들이 표시되어 있다.

이것들 중 맨 앞에 kr 을 삽입해 준다.

ex) LanguagePriority kr en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl .....

이렇게 하고 아파치를 다시 실행시키고 PHP 를 연동해 보자.


728x90

'프로그래밍 > php' 카테고리의 다른 글

Mysql table의 AutoIncrement 값을 가져오기  (0) 2013.07.09
ORACLE, MSSQL, MYSQL 날짜함수 비교  (0) 2012.08.08
php Ajax 한글 처리  (0) 2012.04.20
mysqldump 사용하기  (0) 2012.04.18
PHP 설정 파일  (0) 2012.04.17
728x90


AJAX를 이용해서 utf-8로 인코딩된 한글 문자열을 post method로 php로 된 페이지에 보낼 경우

그냥 보내서 출력하면 문제 없을 수 있으나 php 페이지에서 파일에 저장하는 경우는 ms949에 적합하지 않은 문자열을 그냥 저장하기 때문에 다음에 ms949로 읽어 올 때 제대로 된 문자열을 읽어올 수가 없다.


이와 같은 경우 데이터를 받는 php 페이지에서 다음과 같은 작업을 한다.

 

 

// $_POST['name']에 넘겨받은 utf-8 한글 문자열이 있을 때

$ms949_str = iconv("UTF-8", "CP949", rawurldecode($_POST['name']);

 


이제 $ms949_str을 파일에 기록하면 다음에 읽을 때 제대로 된 문자열을 읽을 수 있다.

 

 

보조자료

AJAX: http://www.w3schools.com/ajax/default.asp

 

 

참고문헌: http://ddakker.tistory.com/179, PHP AJAX 한글 문제 기본 인코딩이 ms949일 때

 


PHP - (ajax) - javascript
 보낼때 - encodeURIComponent(category_name)
 받을때 - $category_name  = iconv("UTF-8", "CP949", rawurldecode($_POST[category_name]));

javascript - (ajax) - php
 보낼때 - rawurlencode(iconv("CP949", "UTF-8", "한글"))
 받을때 - decodeURIComponent(data.category_name.Text);

 

728x90

+ Recent posts