Database/MySQL&MariaDB2016. 3. 17. 11:47

MySQL 에서 날짜 계산

date_add( 기준날짜 , interval 추가하고자하는값 )

1day add
date_add( now, interval +1 day )     

1month add
date_add( now, interval +1 month ) 

1minute add
date_add(now(),interval +1 minute);

1 주전 날짜를 계산 할때는
date_add(now(),interval -1 week);

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2016-03-17 11:42:12 |
+---------------------+
1 row in set (0.00 sec)

mysql> select date_add(now(),interval +1 day);
+---------------------------------+
| date_add(now(),interval +1 day) |
+---------------------------------+
| 2016-03-18 11:43:06             |
+---------------------------------+
1 row in set (0.00 sec)

Posted by 비니미니파
Database/Oracle2016. 3. 2. 18:15

다른 계정에 시퀀스 권한을 주고자 할때는

grant select,alter on ORGUSER.S_TESTTBL to OTHUSER;

grant select,alter on 원계정.시퀀스명 to 타겟계정;

끝.

Posted by 비니미니파
Database/Oracle2015. 3. 9. 09:59

ORA-06550: PLS-00103: 심볼 ""를 만났습니다.

프로시져 호출 시

, 빼먹었더니 발생했다.

ㅠ.ㅠ (결국 오타 수정)

call sp_test( a, b, c d e );

=> 수정

call sp_test( a, b, c, d, e );

Posted by 비니미니파
Database/Oracle2015. 2. 11. 16:45

오늘 날짜 기준으로 1주일 날짜를 가져와야 함.

원하는 결과 ( 오름 차순 )

2015-02-05
2015-02-06
2015-02-07
2015-02-08
2015-02-09
2015-02-10
2015-02-11

SELECT
to_char(sysdate-7 + LEVEL,'YYYY-MM-DD') AS rdate
FROM dual
CONNECT BY LEVEL <= 7  

원하는 결과 ( 내림차순 )

2015-02-11
2015-02-10
2015-02-09
2015-02-08
2015-02-07
2015-02-06
2015-02-05

SELECT
to_char(SYSDATE + 1 - LEVEL,'YYYY-MM-DD') AS rdate
FROM dual
CONNECT BY LEVEL <= 7  
  

Posted by 비니미니파
Database/MS-SQL2014. 8. 1. 17:35

DB복원 시 문제로 DB 가 단일사용자모드 라 뜨면서 엑세스가 안될때는

 


alter database [DB NAME] set multi_user;

당황하지 안코 명령만 실행하면 끗....

Posted by 비니미니파
Database/MS-SQL2014. 7. 2. 09:53

가상상황 )

MEMBER 테이블의 NAME 을 MEMBER_ETC 의 테이블에 넣어야 한다.

먼저 Join 문을 작성 한다.

select
a.NAME, b.NAME
from MEMBER_ETC a left join MEMBER b on ( a.ID = b.ID )
where a.TYPE ='1'

이제 위의 Join 문을 활용하여 Update 문을 작성한다.

( from 이후 는 같다 ... )

update MEMBER_ETC set

NAME = b.NAME

from MEMBER_ETC a left join MEMBER b on ( a.ID = b.ID )
where a.TYPE ='1'

Posted by 비니미니파
Database/MS-SQL2014. 5. 22. 11:55

20140101 을 2014.01.01 이나 2014-01-01 로 표현하고자 한다면

format 을 사용할 수가 있다.

사용법

select format(20140101, '####\.##\.##')

=> 2014.01.01

select format(convert(int,'20140101'), '####\.##\.##')

=> 2014.01.01

select format(convert(int,'20140101'), '####-##-##')

=> 2014-01-01

Posted by 비니미니파
Database/Oracle2014. 4. 14. 16:01

oralce 메모리 설정을 하다 실수를 하여 ORA-00838 을 영접하게 되었다...

구글링 결과

sqlplus / as sysdba

SQL> create pfile from spfile;

SQL> exit

위의 작업으로 INITorcl.ORA 파일을 생성한다. (SPFILEORCL.ORA 파일로 부터)

파일 위치는 오라클 설치 폴더 \app\Administrator\product\11.2.0\dbhome_1\database (11g 기준)

 

INITorcl.ORA 을 열고

*.memory_max_target=222298112 *.memory_target=222298112 *.sga_max_size=268435456 *.sga_target=0 부분을 수정 한다.

 

sqlplus / as sysdba

 

SQL> create spfile from pfile;

 

SQL> startup

 

수정한 INITorcl.ORA 파일로 부터 SPFILEORCL.ORA 파일을 생성한다. 그리고, startup

 

**** 정리 ****

create pfile from spfile; // SPFILEORCL.ORA 을 INITorcl.ORA 로

create spfile from pfile; // INITorcl.ORA 을 SPFILEORCL.ORA 로

Posted by 비니미니파
Database/MS-SQL2014. 4. 1. 09:20

프로시져 기초

CREATE PROCEDURE [dbo].[SP_TEST] ( @AAA char(4), @BBB varchar(20) )
AS
BEGIN 

  DECLARE @CCC varchar(2000)
  SELECT @CCC = ''

END

 

Posted by 비니미니파
Database/MS-SQL2014. 3. 11. 10:49

회원 테이블의 목록과 전체 회원수를 동시에 조회 하여 뒤에서 사용하고 자 할 때....

select
  NAME
, count(*) over() as TOT_CNT
from MEMBER

결론,

count(*) over() 로  group by 없이 사용할 수 있음....

 

Posted by 비니미니파
Database/MySQL&MariaDB2013. 12. 4. 15:59

mysql 을 설치하고 아무생각없이 데이터베이스를 생성해 사용하다보면 latin1 으로 되어 있는 경우가 많다.

 아무생각없이 이전을 하다보면 character-set 문제를 만들게 된다. 

 이제 latin1 을 euc-kr로 걱정없이 바꿔버리자.

 1. 덤프를 뜰때 잘 뜨야 한다.

 ]$ mysqldump -u testSite -p --opt --default-character-set='latin1' dgom > testSite.YYYYMMDD.latin1.dump

 2. 혹시를 대비하여 원본 latin1 은 나두고 복사하여 변경하자

 ]$ cp testSite.YYYYMMDD.latin1.dump testSite.YYYYMMDD.euckr.dump

 3. 캐릭터셋을 바꾸자 (실제 데이터를 변경(?)하는것은 아니고 latin1 을 euc-kr로 치환하는 것이다.

 ]$ find testSite.YYYYMMDD.euckr.dump -print -exec perl -p -i -e "s/latin1/euckr/g" {} \;

끝...

P.S > 이 글에 대한 책임은 없습니다. 원본을 꼭 덤프하고 작업하시길.... 까먹지 말자....

Posted by 비니미니파
Database/MS-SQL2013. 12. 4. 15:46

MS-SQL 에서

랜덤 하게 5개만 뽑아 올려면

select top (5) *
from TABLE_NAME
order by newid();

 

Posted by 비니미니파
Database/MS-SQL2013. 12. 4. 15:18

ms sql 에서 lpad 구현 꼼수

1. right 를 이용한 간단 구현

1 => 0001  형태의 4자리로 바꿔 준다.

select convert(varchar(255), right(N'0000'+rtrim('1'),4)  ) AS NO

2. replicate 를 이용한 복잡한 구현

00001234 형태의 8자리

1) 오라클 용
LPAD(TRIM(TO_CHAR(NO,'99999999')), 8, '0') NO

2) MS SQL 용
REPLICATE('0', 8 - DATALENGTH(CONVERT(VARCHAR(4), NO ))) + CONVERT(VARCHAR(4), NO ) NO

Posted by 비니미니파
Database/MS-SQL2013. 12. 4. 11:45

ORACLE

select '0' CNT from dual

MS SQL 에서는

select '0' CNT

로 할 수 있다.

그러나, 꼭!!!!! from dual 형태로 구현을 해야 한다면

select '0' CNT from ( select '1' as dual) a

로 해결하면 된다!!!!!!

 

'Database > MS-SQL' 카테고리의 다른 글

[MS-SQL] 랜덤 조회 select random  (0) 2013.12.04
[MS-SQL] lpad 구현 꼼수....  (0) 2013.12.04
[MS-SQL] 날짜 포맷 변환  (0) 2013.09.30
[MS-SQL] 테이블 lock deadlock 교착상태  (0) 2013.09.05
[MS-SQL] row number 사용  (0) 2013.08.30
Posted by 비니미니파
Database/MS-SQL2013. 9. 30. 11:46

YYYY-mm-dd 포맷으로 가져올때

SELECT CONVERT(CHAR, GETDATE(), 23)

0.    09 30 2013  3:00PM
1.    09/30/10
2.    10.09.30
3.    30/09/10
4.    30.09.10
5.    30-09-10
6.    30 09 10
7.    09 30, 10
8.    17:35:47
9.    09 30 2013  5:36:16:863PM
10.   09-30-10
11.   13/09/30
12.   130930
30.   30 09 2013 11:20:57:550
14.   11:21:11:317  
20.   2013-09-30 11:21:40 
21.   2013-09-30 11:21:48.397 
22.   09/30/10 11:21:57 AM 
23.   2013-09-30  
24.   11:22:20   
25.   2013-09-30 11:22:28.240 
100.    09 30 2013 11:22AM 
101.    09/30/2013  
102.    2013.09.30  
103.    30/09/2013  
104.    30.09.2013  
105.    30-09-2013  
106.    30 09 2013  
107.    09 30, 2013  
108.    11:23:46  
109.    09 30 2013 11:23:55:880AM
110.    09-30-2013  
112.    2013/09/30  
112.    20130930  
130.    30 09 2013 11:24:33:270 
114.    11:24:40:677  
120.    2013-09-30 11:24:50 
121.    2013-09-30 11:24:57.880 
126.    2013-09-30T11:25:05.193 

Posted by 비니미니파