본문 바로가기

데이터베이스2

sqlite의 time이 자정을 인식 못할 경우, 간단한 꼼수 해결법 안드로이드의 sqlite 데이터베이스를 사용하는 도중 이상한 점을 하나 발견했다. time 데이터타입에서 00시 또는 24시, 즉 자정일때 time() 함수가 먹히질 않는다는 점이다. 예를 들면, (time 데이터타입의 field1 시각 + int 데이터타입의 field2 초) > 특정시각 을 비교할때 SELECT * FROM table1 WHERE time(field1, field2 ||' seconds') > 23:59:30 와 같이 사용한다. 하지만 이때, field1이 23:59:00 이고 field2가 60초 이상이면 자정이 넘어가면서 SELECT 결과가 항상 아무것도 안나오게 된다. field1이 24:00:00 이상이어도 마찬가지다. 이걸 해결하기 위해 만방으로 살펴봤지만... 역시 코딩은 .. 2018. 9. 27.
안드로이드 앱 런칭후 데이터베이스 변경시 주의할점 단말기의 로컬 데이터베이스를 사용한 앱을 개발하다 보면 한번쯤은 겪게 되는것이 있다 바로 출시후 테이블 또는 필드추가, 내용추가변경이다 나도 처음에는 별생각없이 출시했다가 업데이트를 해야 하는데 디비를 바꾸어야 하는 상황이 있었다. 그래서 다 아시다시피 생성자에서의 버전을 전숫자보다 크게 넣고 onUpgrade() 에서 업데이트를 했다... 그런데 디비 버전이 한번이 아니라 여러번 바뀔경우 만약 사용자가 디비 1버전의 앱에서 사용하다가 오랬동안 사용을 안하고 곧바로 디비 3버전의 앱을 업데이트 받아 사용할경우 2버전의 디비변경사항도 적용해주어야 함을 늦게서야 깨달았다ㅎㅎ 당시에는 분명 디비 변경을 해줫는데 왜 그러나... 하고 엄청 심각했었는데 원인을 알고 나니 좀 허무했다ㅎㅎ 어잿든 아래와 같이 스위치.. 2014. 1. 20.