SQL Server version 2012 이후 부터 사용 가능 하다고 함


SELECT FORMAT(GETDATE(), 'yyyyMMddHHmmssfff');

>> 20161216152721827


SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss');

>> 2016-12-16 15:27:21



Posted by 짱가쟁이

- 함수 생성

-- $1 : lat (기준점:위도)

-- $2 : lng  (기준점:경도)

-- $3: lat (target : 위도)

-- $4 : lng (target : 경도)

create function fn_geo_distance(double precision, double precision, double precision, double precision) returns double precision as $$

select 

   ( 

(

   acos(

   sin( $1 * PI() /180.0 ) * 

   sin( $3 * PI() /180.0 ) + 

   cos( $1 * PI() /180.0 )  * 

   cos( $3 * PI() /180.0 ) * 

   cos( ($2 - $4) * PI() /180.0  ) 

   ) 

) *  180.0 / PI() 

   ) * 60*1.1515*1.609344*1000 

)

$$ LANGUAGE SQL;


- 사용 예

select fn_geo_distance(37.51084072964695, 127.01951086521149, cast(lat as double precision), cast(lng as double precision)) as distance


ps

 - 계산 알고리즘은 이해 못함. (ㅠㅠ)

'DBMS > postgresql' 카테고리의 다른 글

[poostgresql] - postgis 사용하여 반경 검색하기  (0) 2015.01.09
[postgresql] - OIDS 란?  (0) 2015.01.02
Posted by 짱가쟁이

1. 설치

우분투

 : http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS21UbuntuPGSQL93Apt

CentOS

 :  http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS21CentOS6pgdg


2. 테이블 생성

CREATE TABLE tb_poi

(

    idx INTEGER not null,

    gps geometry, 

    CONSTRAINT pk_poi PRIMARY KEY (idx)

)

WITH (

    OIDS=FALSE

);


3. 데이터 입력

WGS84:4326 좌표계로 거리 계산이 안되기 때문에 EPSG:2097 좌표계로 변환하여 데이터 입력함


- geometry : WGS84 좌표계 (경도/위도)

    : ST_GeomFromText('POINT(127.01763868331909 37.508993923524145)', 4326)

- geometry : WGS84 좌표계 -> EPSG 좌표계 변환

    : ST_Transform(ST_GeomFromText('POINT(127.01763868331909 37.508993923524145)', 4326), 2097)


INSERT INTO tb_poi(idx, gps) VALUES (1, ST_Transform(ST_GeomFromText('POINT(127.01763868331909 37.508993923524145)', 4326), 2097));


4. 반경검색

WGS84:4326 좌표계를 EPSG:2097 좌표계로 변환하여 반경검색 

 - 미터기준


SELECT *  -- 100미터 반경 검색에 포함된 POI 조회

FROM tb_poi

WHERE 

    ST_DWithin(gps, ST_Transform(ST_GeomFromText('POINT(127.01937675476074 37.50916413798163)', 4326), 2097), 100); 


'DBMS > postgresql' 카테고리의 다른 글

WGS84 거리 계산 함수  (0) 2015.01.15
[postgresql] - OIDS 란?  (0) 2015.01.02
Posted by 짱가쟁이

테이블 생성 스크립트

CREATE TABLE TB_USER

(

  username character varying(64) NOT NULL, -- 사용자이름

  password character varying(20), -- 비밀번호

  CONSTRAINT PK_TB_USER PRIMARY KEY (username)

)

WITH (

  OIDS=FALSE

);


COMMENT ON TABLE TB_USER IS '사용자 관리';

COMMENT ON COLUMN TB_USER.username IS '사용자이름';

COMMENT ON COLUMN TB_USER.password IS '비밀번호';


위와 같이 테이블을 생성할 때 OIDS=FALSE란 구분이 보인다.

궁금해서 뒤져본 결과 postgresql은 테이블을 생성할 때 기본키를 설정하지 않으면 내부적으로 기본키를 생성한다고 한다. 이를 OIDS라고 하며 OIDS=FALSE란 의미 그대로 기본키를 내부적으로 생성하지 않겠다는 것이다.


'DBMS > postgresql' 카테고리의 다른 글

WGS84 거리 계산 함수  (0) 2015.01.15
[poostgresql] - postgis 사용하여 반경 검색하기  (0) 2015.01.09
Posted by 짱가쟁이

select * from TABLE

where REG_DTS between DATEADD(MONTH, -1, GETDATE()) and GETDATE()

Posted by 짱가쟁이

2012년 1월 데이터 조회 시 사용


select * from TABLE

where convert(char(7), REG_DTS, 120) = '2012-01'

Posted by 짱가쟁이

select cast(stuff(stuff(stuff('20121030132410', 9, 0, ' '), 12, 0, ':'), 15, 0, ':') as datetime) as date

Posted by 짱가쟁이

select 

abs(

to_date('20120622154327', 'YYYYMMDDHH24MISS') - 

to_date('20120622150250', 'YYYYMMDDHH24MISS')

) * 24 * 60 * 80 from dual


'DBMS > oracle' 카테고리의 다른 글

[oracle] - 컬럼생성 스크립트  (0) 2011.06.24
[oracle] - 오라클 버전별 jdbc  (0) 2010.09.17
[oracle] - merge 사용하여 insert , update 동시 수행하기  (0) 2010.08.03
[oracle] - 소숫점 제거  (0) 2010.07.06
[oracle] - replace  (0) 2010.07.06
Posted by 짱가쟁이

update A set

    value = '6'

from

table A,

    (select state, type from table where id = 231) B

where 

A.state = B.state

and A.type = B.type


업데이트 구문이 지랄 맞기는 하지만 서두 저 따위로 사용할 필요성이 있다. 쩌ㅃ~
Posted by 짱가쟁이

ALTER TABLE  TABLE_NAME ADD ( LOC_X VARCHAR2(32), LOC_Y VARCHAR2(32) );

COMMENT ON COLUMN TABLE_NAME.LOC_X IS '경도';
COMMENT ON COLUMN TABLE_NAME.LOC_Y IS '위도';

'DBMS > oracle' 카테고리의 다른 글

시간차 초 단위로 계산  (0) 2012.06.22
[oracle] - 오라클 버전별 jdbc  (0) 2010.09.17
[oracle] - merge 사용하여 insert , update 동시 수행하기  (0) 2010.08.03
[oracle] - 소숫점 제거  (0) 2010.07.06
[oracle] - replace  (0) 2010.07.06
Posted by 짱가쟁이
이전버튼 1 2 이전버튼