지식메모

반응형



데이터가 시간 내에 얼마나 들어왔나 보고 싶을때 시간 검색, 기간 검색이 가능하다



 select * from music 

where

 (type='song' or type='album')

 and 

created_date > DATE_ADD(now(), INTERVAL -1 hour);



music 테이블에서 type이 song 또는 album 인 데이터가 지난 1시간 동안 얼마나 들어왔는지 검색


-1~ -24 까지 하면 최근 한 시간 부터 24시간까지 검색이 가능


이런 식으로 끝에

-1 hour  최근 한 시간

-1 day 최근 하루

-1 month 최근 한달




 select * from music

 where 

created_date between '2013-10-10' and '2013-10-14';


10일부터 14일까지 검색




반응형
반응형

$line = str_replace("#","*",$line);

//$line 에서 #.을 ""로 치환



trim(substr($line,0,2)

//0부터 2까지 문자열을 자르고 앞 뒤 공백 제거



$valueArr = explode("|",$value);

// | 기준으로 문자열 분리하여 배열저장





반응형

'지식메모 > PHP' 카테고리의 다른 글

php 문자열 공백제거하기  (1) 2013.11.13
게시판 글 번호 구하기  (2) 2013.08.13
게시판 페이징 구현하기  (44) 2013.08.12
날짜 출력 함수 사용하기  (0) 2013.08.05
문자열 잘라쓰기  (0) 2013.08.05
반응형

String s="ABcdeFGhIJklmNop";


s=s.toUpperCase();

//모두 대문자로 바꾸기


s=s.toLowerCase();

/모두 소문자로 바꾸기






반응형

'지식메모 > JAVA' 카테고리의 다른 글

숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
java 문자열 구분자로 자르기  (0) 2013.10.02
ObjectNode 와 JsonNode 차이?  (0) 2013.09.06
mp3 ID3 v2 태그 파싱하기  (3) 2013.08.27
반응형


구분자를 지정하여 하나 이상의 값을 구분하여 데이터를 배열에 집어넣고 그 값을 꺼내 사용한다.


쿼리를 날릴때 조건이 두 가지가 있을때 사용하였다.



public static splitFunction(String ktype){     //ktype을 받는다.


	String ktypeWhere = "";     		//ktypeWhere는 공백상태

	String[] array = ktype.split(",");     //콤마 구분자로 배열에 ktype저장

	for(String cha : array){      //배열 갯수만큼 포문이 돌아간다.

	/* ktypeWhere가 비어있다면 ktypeWhere 에 cha 값을 넣고 비어있지 않다면
	*  기존 값에 ,를 추가하여 cha를 덧붙인다.
	*/
	ktypeWhere += (ktypeWhere.equals("")) ? "'"+cha+"'" : ",'"+cha+"'";
			
	}
}

주석 설명대로 처음에 String ktype을 받는다. 


만약 사과를 받았다면 "사과" 값이 하나 들어가지만 


사과 포도를 받았다면 "사과,포도" 라고 값이 들어간다.



, 콤마로 구분자를 주었다면 입력할때도,콤마를 꼭 넣어주어야 한다.

그냥 "사과 포도" 이렇게 써도 자동으로 콤마가 들어가지않는다.

"사과,포도"야 구분이 가능하다.



그러면


String[] array = ktype.split(","); 


여기서 split 이라는 함수가 , 를 구분자로 인식해서 


String[] array라는 배열에 0번째부터 사과 1번째에는 포도라고 저장한다.



그 다음 포문을 돌리는데 조건문이

for(String cha : array) 이므로

array 갯수만큼 포문을 돈다.


현재 사과 포도 2개가 있으므로 2번 돌게 된다.



그럼 삼항연산자를 이용해서


ktypeWhere += (ktypeWhere.equals("")) ? "'"+cha+"'" : ",'"+cha+"'";값을 넣어준다.

처음에 String ktypeWhere = ""; 이라고 선언했으니 비어있는 상태다.


 ktypeWhere.equals("") ? "'"+cha+"'" : ",'"+cha+"'" ;

ktypeWhere가 값이 ""이므로 비어있다면 ? cha 값을 ktypeWhere에 넣어주고 : 안 비어있다면 ,를 붙여 cha값을 추가한다.;


삼항연산자는 


조건문 ? 만족할때 실행 : 만족못할때 실행

이런 형식이다.


만약 if문으로 한다면


if(ktypeWhere.equals("")){
	ktypeWhere = cha;
}else{
	ktypeWhere +=  ","+cha;
}


이렇게 될 것이다.(맞나?)


그럼 사과 포도 데이터가 2개 있으니 처음 포문을 돌때는 ktypeWhere가 값이 비어있으니


ktypeWhere = "사과" 이다.



두번째 포문을 돌때는 이미 사과가 들어가 있으므로 ,를 이용해서 붙인다.


그래서 ktypeWhere = "사과,포도"이다.



그리고 쿼리에 넣을때는 ' '표시를 해줘야 하기 때문에 "'"+ 이 구문을 넣어주었다.

쿼리 쓸 일이 아니라면 안 넣어줘도 된다.



그런 다음 ktypeWhere 값을 갖다 쓰면된다.











반응형

'지식메모 > JAVA' 카테고리의 다른 글

숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
대문자 소문자 서로 변환하기  (0) 2013.10.08
ObjectNode 와 JsonNode 차이?  (0) 2013.09.06
mp3 ID3 v2 태그 파싱하기  (3) 2013.08.27

git 명령어 정리

2013. 9. 26. 15:53
반응형






#기본


git init

git clone 저장소주소 폴더명


지정한 커밋의 로그메세지를 수정

git commit -C HEAD -a --amend


변경내용 되돌리게..

git checkout -- 파일명


인덱스에 스테이징한거 취소(add한거)

git reset HEAD <file>


터미널에서 컬러로 나오게

git config --global color.ui "true";


환경변수보기

git config --global --list




#Stash

unstaged상태의 파일을 일시적으로 백업하고 워킹디렉토리를 깨긋하게유지(아직 커밋하면 안되는 작업중에 pull받아야하는데 그때 충동이 일어날경우…작업도 안됬는데 중간에 커밋하고 풀하는건 안좋다 이때 stash사용)

git stash

git stash pop //복구

git stash apply //스태시에서 제거하지않고 복구

git stash list

git stash show stash이름




#브랜치


브랜치 조회

git branch


새브랜치

git branch 브랜치명


브랜치 삭제

git branch -d 브랜치명


브랜치 이름변경

git branch -m 존재하는브랜치명 새로운브랜치명


태그붙이기

git tag 태그명 브랜치명


해당브랜치나 태그로 체크아웃

git checkout 브랜치명/태그명


해당 브랜치를 현재 브랜치로 합침

git merge 브랜치명


해당 브랜치의 변경사항을 현재 브랜치에 적용

git rebase 브랜치명




#로그관리

해당 파일의 마지막 변경 상세 이력을 볼수있다.

git blame 파일명


이전 커밋 취소

git reset 커밋명

git reset HEAD^ //최근1개의 커밋취소

git reset --hard HEAD 변경사항무시 마지막커밋 복구


커밋상세 정보를 보여준다.

git show 커밋주소




# 소스비교

영역 구분

워킹 트리 working tree (workspace)

인덱스 index (planned tree, staging area)

로컬 브랜치(현재 브랜치) local branch[local repository]

리모트 트래킹 브랜치 remote tracking branch[local repository] : 리모트 브랜치를 로컬에서 참조가능(fetch 명령으로 갱신)

리모트 브랜치 remote branch[remote repository]


1. 워킹 트리 → 인덱스

git status : 워킹트리에서 아직 인덱스에 add되지 않은 파일내역

git diff : 워킹 트리와 인덱스간 소스내용 차이점

git diff <파일> : 해당 파일에 대한 워킹트리와 인덱스간 소스내용 차이점


2. 인덱스 → 로컬 브랜치

git status : 인덱스에서 아직 commit되지 않은 파일내역

git diff --cached : 인덱스와 로컬브랜치(HEAD) 간의 차이점. "commit" 명령을 수행할 경우 반영되는 내용들


3. 워킹 트리 → 로컬 브랜치

git diff HEAD : 워킹 트리와 로컬 브랜치(HEAD)의 소스내용 차이. 마지막 commit 이후 변경사항. 

                     "commit -a" 명령을 수행할 경우 반영되는 내용들

git diff HEAD -- <파일> : 해당 파일에 대한 워킹트리와 마지막 commit 이후의 소스내용 차이점


4. 워킹 트리 → 리모트 브랜치

git diff FETCH_HEAD : 워킹 트리와 리모트 브랜치(FETCH_HEAD)의 소스내용 차이점

git diff FETCH_HEAD -- <파일> : 해당 파일에 대한 워킹 트리와 리모트 브랜치 소스내용 차이점


5. 로컬 브랜치 → 리모트 브랜치 : Outgoing Changes

git log FETCH_HEAD.. : 로컬 브랜치에서 리모트 브랜치에 반영할 변경내역(커밋기록)

git diff FETCH_HEAD... : 로컬 브랜치에서 리모트 브랜치에 반영할 소스 변경내용 


6. 리모트 브랜치 → 로컬 브랜치 : Incoming Changes

git log ..FETCH_HEAD : 리모트 브랜치에서 로컬 브랜치로 가져와야할 변경내역(커밋기록)

git diff ...FETCH_HEAD : 리모트 브랜치에서 로컬 브랜치로 가져와야할 소스 변경내용





#원격저장소


원격저장소의 변경사항을 가져와서 브랜치를 갱신

git fetch


새로운 원격저장소 추가

git remote add 이름 저장소주소


원격 저장소 목록확인

git remote


해당 원격저장소의 정보를 볼 수 있습니다.

git remote show 이름


원격저장소를 제거합니다.

git remote rm 이름



개별파일 원복

git checkout  -- <파일> : 워킹트리의 수정된 파일을 index(staging area)에 있는 것으로 원복

git checkout HEAD -- <파일명> : 워킹트리의 수정된 파일을 HEAD에 있는 것으로 원복(이 경우 --는 생략가능)

git checkout FETCH_HEAD -- <파일명> : 워킹트리의 수정된 파일의 내용을 FETCH_HEAD에 있는 것으로 원복? merge?(이 경우 --는 생략가능)

 

index 추가 취소

git reset -- <파일명> : 해당 파일을 index(staging area)에 추가한 것을 취소(unstage). 워킹트리의 변경내용은 보존됨. (--mixed 가 default)

git reset HEAD <파일명> : 위와 동일

 

commit 취소

git reset HEAD^ : 최종 커밋을 취소. 워킹트리는 보존됨. (커밋은 했으나 push하지 않은 경우 유용)

git reset HEAD~2 : 마지막 2개의 커밋을 취소. 워킹트리는 보존됨.

git reset --hard HEAD~2 : 마지막 2개의 커밋을 취소. index 및 워킹트리 모두 원복됨.

git reset --hard ORIG_HEAD : 머지한 것을 이미 커밋했을 때,  그 커밋을 취소. (잘못된 머지를 이미 커밋한 경우 유용)

git revert HEAD : HEAD에서 변경한 내역을 취소하는 새로운 커밋 발행(undo commit). (커밋을 이미 push 해버린 경우 유용)

 

워킹트리 전체 원복

git reset --hard HEAD : 워킹트리 전체를 마지막 커밋 상태로 되돌림. 마지막 커밋이후의 워킹트리와 index의 수정사항 모두 사라짐. 

                                  (변경을 커밋하지 않았다면 유용)

 

 

* 참조 : reset 옵션

--soft : index 보존, 워킹트리 보존. 즉 모두 보존.

--mixed : index 취소, 워킹트리만 보존 (기본 옵션)

--hard : index 취소, 워킹트리 취소. 즉 모두 취소..


반응형

git 사용법

2013. 9. 26. 14:43
반응형


아무리 해도 어려워...




잘 설명되어 있으나 내가 이해못하는 관련 링크들


완전 초보를 위한 깃 허브

http://nolboo.github.io/blog/2013/10/06/github-for-beginner/


git 간편 안내서

http://rkjun.github.io/git-guide/index.ko.html


git 사용가이드

http://www.slideshare.net/dhrim/git-12030742


git 사용법

http://kimseunghyun76.tistory.com/116



퀴즈로 알아보는 배우기 쉬운 git 브랜치 매뉴얼

http://learnbranch.urigit.com/?demo



개발자를 위한 고급 Git 활용전략

http://h3.paran.com/2011/session/advanced-git-tutorial.html


깃 입문

https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html




반응형
반응형




안드로이드에서 레이아웃이나 버튼 이미지 뷰 등등 xml에서 제어 가능한 부분을 조건에 따라 보여주고 숨길 수 있는 방법이 있었다.




layout.setVisibility(View.VISIBLE);

해당 뷰를 보여줌


layout.setVisibility(View.INVISIBLE);

해당 뷰를 안 보여줌(공간은 존재)


layout.setVisibility(View.GONE);

해당 뷰를 안 보여줌(공간마저 감춤)




INVISIBLE과 GONE의 차이는 공간을 보여주느냐 안 보여주느냐의 차이이다.




예를 들면 1 2 3 4 5 의 숫자가 있을때 3을 숨기려고 한다면


INVISIBLE은 1 2 " " 4  5 이런 식으로 3은 없지만 자리는 남아있고


GONE은 1 2 4 5 이런 식으로 3과 공간 모두 숨기게 된다.




사용 예로



LinearLayout layout = (LinearLayout) findViewById(R.id.first);
LinearLayout layout2 = (LinearLayout) findViewById(R.id.second);
LinearLayout layout3 = (LinearLayout) findViewById(R.id.third);

switch (checkedId) {

case R.id.button:

	
	layout.setVisibility(View.VISIBLE);
	layout2.setVisibility(View.INVISIBLE);
	layout3.setVisibility(View.GONE);



이렇게 사용하면 id가 button 인 버튼을 누르면 

id가 first인 레이아웃은 보여지고

second 레이아웃은 보이지 않고 그냥 빈 공간만 나오게 되며

third 레이아웃은 아예 삭제된듯이 숨겨지게 된다.




그리고 버튼을 선택하기전에 초기상태에서 숨기려면 직접 xml 파일로 가서 해당 레이아웃에


android:visibility="gone" 


옵션을 주면 처음부터 보여지지 않게 된다.



레이아웃 뿐만 아니라 버튼이나 이미지 뷰 텍스트 뷰 등등 여러가지도 적용할 수 있다.



반응형
반응형



예전에 쓰던 컴퓨터에서 하드만 빼서 외장하드로 쓰고 있다.


그래서 파티션이 나누어져 있었는데 합치는 방법을 찾다가 윈도우 7에서 할 수 있는 기능을 알게 되었다.





먼저 외장하드G드라이브가 잡힌 모습이 보인다.

이걸 두 개의 파티션으로 나누려고 한다.







내컴퓨터에서 오른쪽 클릭을 해서 관리 메뉴로 들어간다.







그럼 다음과 같은 창이 뜨는데

G드라이브가 보이고 하단에 디스크1 로 G드라이브가 잡혀 있는 걸 볼 수 있다.









G드라이브를 우클릭해서 볼륨축소 메뉴로 들어간다.









그럼 다음과 같은 창이 뜨는데 축소할 공간 입력에 나누고픈 용량을 입력해준다.

100기가를 입력해보았다.










축소를 하고 나면 위에 드라이브 목록에는 나뉜 공간이 뜨지 않는데 아직 인식을 못하기 때문이다.

(하단에 보면 할당되지 않은 공간이라고 떠있다.  또 100기가 아니라 97.66인 건 컴퓨터가 인식할 때 이러저러한 이유가 있어서 정상적인 현상이다)


그래서 하단 디스크 1 에서 할당되지 않음이라고 떠있는 곳에 마우스를 대고 우클릭을 한다.


새 단순 볼륨으로 들어간다.







그럼 마법사가 시작되는데 그냥 계속 진행해주면 된다.

다음





여기서는 자동으로 최대 값이 입력되어있으므로 다음




다음






볼륨레이블에 이름을 정해줘도 되고 안 해줘도 된다.

(안 해주면 "새 볼륨"이라고 자동 입력되어있따.)


끝!







마침을 누르고 나면 잠시 포맷을 수행한다.







포맷이 끝나면 저장소2 라는 드라이브가 새로 생겼다!!






이제 다시 합쳐보자. 저장소2를 우클릭하고 볼륨삭제로 들어간다.






과감히 예를 눌러준다.







그럼 드라이브 목록에는 사라지게 되고 하단에는 할당되지 않음이라고 뜬다.






나머지 저장소도 똑같이 지워준다. 그럼 목록에서 다 사라지고 하단에는 용량이 합쳐진 상태로 할당되지 않음으로 뜬다.






이제 하단에 디스크 1에 우클릭을 해주고 새 단순 볼륨으로 들어간다.







자동으로 최대 값으로 되어있으니 다음





이것도 다음





이름을 지어주고




완료!





그럼 잠시 포맷을 진행하고...





드라이브 목록에 뜨면서  하단에는 저장소라 뜬다. 

나는 외장하드라서 작업이 끝나자마자 인식이되어서 자동실행 창이 떴다.




요약하자면

파티션을 두 개 이상으로 나누고 싶으면 나누는 작업을 반복하면 되고

하나로 합치고 싶을때는 모든 파티션을 다 삭제 후 합쳐진 파티션을 새 볼륨으로 만들어 주면 된다.


윈도우 7 에서 파티션 나누고 합치기 끝!!



반응형

+ Recent posts