Supabase란 무엇인가요? 🤔

Supabase는 개발자들이 백엔드 구축 작업을 간소화하고 신속하게 애플리케이션을 개발할 수 있도록 지원하는 오픈 소스 Backend-as-a-Service(BaaS) 플랫폼입니다. Postgres 데이터베이스를 근간으로 실시간 데이터베이스 관리, 인증, 스토리지, 서버리스 기능 등을 제공합니다. 마치 Firebase와 비슷한 서비스처럼 보이지만, 오픈 소스라는 점과 데이터베이스 기술에서 차별점을 가지고 있습니다.

이 글에서는 Supabase의 주요 기능, Firebase와의 차이점, 장단점 및 적용 사례까지 상세히 살펴보겠습니다. 🧐


주요 기능 🌟

Supabase는 개발자들이 백엔드 작업을 간단하고 빠르게 수행할 수 있도록 여러 강력한 기능들을 제공합니다:

1. PostgreSQL 데이터베이스 🛠️

Supabase는 PostgreSQL을 기반으로 하며, 강력한 쿼리 기능과 데이터 관계를 지원합니다.

  • 데이터 모델링과 스키마 관리가 쉬움.
  • SQL을 직접 다루고 싶은 개발자들에게 적합.

2. 실시간 데이터 처리 🔄

Supabase의 실시간 기능은 데이터베이스의 변경 사항을 즉시 탐지하고 처리할 수 있습니다.

  • 채팅 앱, 알림 시스템과 같은 애플리케이션에 활용.
  • WebSocket 기술을 활용하여 즉각적인 데이터 동기화.

3. 인증 및 권한 관리 🔐

공식 인증 서비스(유저 인증, 소셜 로그인을 포함) 제공:

  • 이메일/비밀번호, OAuth(구글, 깃허브, 애플) 로그인을 손쉽게 통합.
  • 로드 시간 단축과 간편한 유저 관리.

4. 스토리지 🗂️

Supabase의 파일 스토리지 기능을 통해 이미지, 동영상, 문서 등 다양한 파일을 저장할 수 있습니다.

  • Amazon S3 호환 버킷 사용.
  • 사용자별 액세스 제어 가능.

5. 서버리스 함수 🖥️

  • Supabase는 Edge Functions라는 서버리스 환경을 제공합니다.
  • 클라우드 기능을 쉽게 확장하고, 백엔드 로직을 개발 가능.

Supabase와 Firebase 비교 🔍

둘 다 BaaS 플랫폼이지만, Supabase는 오픈 소스와 PostgreSQL을 기반으로 한다는 점에서 Firebase와 다릅니다. 아래는 주요 차이점을 비교한 표입니다:

기능 Supabase Firebase
데이터베이스 PostgreSQL (관계형) NoSQL (Firestore)
오픈 소스 여부 ✔️ (완전히 오픈 소스) ❌ (구글 소유)
실시간 기능 ✔️ (Postgres 기반) ✔️ (Firestore 실시간 동기화)
스토리지 ✔️ (S3 호환 스토리지) ✔️ (Firebase Storage)
커스터마이징 SQL 및 다양한 오픈 소스 도구 조합 가능 제한된 커스터마이징 가능
비용 구조 사용량에 따라 비교적 유연함 무료 요금제 이후 급격히 비용 증가

Firebase가 적합한 경우

  • 빠르게 프로토타입을 만들어야 할 때.
  • 복잡한 관계형 데이터베이스를 사용하지 않을 때.

Supabase가 적합한 경우

  • 오픈 소스 솔루션을 선호할 때.
  • SQL 및 관계형 데이터베이스에 익숙할 때.
  • 클라우드 서비스를 커스터마이징해서 사용할 때.

Supabase의 장점 💡

  1. 오픈 소스: 무료로 시작할 수 있으며, 원하는 방식으로 커스터마이징 가능.
  2. SQL 친화적: PostgreSQL 기반으로 SQL을 바로 사용할 수 있음.
  3. 빠른 구현: 백엔드 작업에 소요되는 시간을 대폭 단축.
  4. 모듈화된 구성: 데이터베이스, 인증, 스토리지 등 필요에 따라 모듈별로 사용 가능.

Supabase의 단점 ⚠️

  1. 새로운 플랫폼: Firebase에 비해 생태계와 커뮤니티가 아직 작음.
  2. 제한된 관리 인터페이스: 클라이언트와 UI 사용이 많으면 직접적인 쿼리 활용이 제한될 수 있음.
  3. 초기 설정 복잡성: Firebase와 비교해 초기 학습 곡선이 있을 수 있음.

Supabase를 사용하는 사례 💼

Supabase는 관계형 데이터베이스와 실시간 기능이 필요한 다양한 프로젝트에서 활용될 수 있습니다.

  1. 채팅 애플리케이션
    • 실시간 데이터 동기화와 권한 관리로 사용자 맞춤형 채팅 방 생성.
  2. 이커머스 플랫폼
    • PostgreSQL 기반으로 제품, 고객, 주문 데이터를 관계형 모델링으로 관리.
  3. 소셜 미디어 앱
    • 인증과 대용량 스토리지를 사용하여 사용자 프로필 및 콘텐츠 저장.

Supabase 시작하기 🚀

Supabase를 사용해 보고 싶다면, 다음 단계를 따라 시작하면 됩니다:

  1. Supabase 공식 사이트에 로그인.
  2. 무료 프로젝트 생성.
  3. 데이터베이스 스키마 디자인 및 관리.
  4. Authentication과 Realtime 설정.
  5. SDK를 사용하여 클라이언트 애플리케이션과 통합.

Q&A 섹션 ❓

1. Supabase는 무료로 사용할 수 있나요?

네, Supabase는 무료 계층으로 시작할 수 있습니다. 하지만 사용량에 따라 유료 요금제로 전환될 수 있습니다.

2. Supabase는 어떤 언어와 호환되나요?

Supabase는 JavaScript, Python, Ruby, Kotlin 등 다양한 언어 SDK와 API를 제공합니다.

3. Supabase와 Firebase를 함께 사용할 수 있나요?

네, 필요하다면 Firebase의 인증 기능을 Supabase와 결합하여 사용할 수 있습니다.

4. Supabase는 온프레미스에서도 사용 가능한가요?

네, Supabase는 오픈 소스이기 때문에 온프레미스 환경에서 배포 및 관리가 가능합니다.

5. Supabase는 어떤 규모의 애플리케이션에 적합한가요?

소규모에서 중대규모의 애플리케이션에 이상적이며, 필요에 따라 쉽게 확장이 가능합니다.


'DB' 카테고리의 다른 글

[MyBatis] RDBMS별 like 검색처리 방법  (0) 2020.06.13
[MyBatis] 동적쿼리 foreach문  (0) 2020.06.13
[DB] Join의 종류  (0) 2020.05.30
[My-SQL] 날짜관련 함수 모음  (0) 2020.05.30

회사에서 MySQL(MariaDB), Oracle, MSSQL을 다 사용하다보니

 

MyBatis에서 like를 사용할때 처리하는 방법이

 

다 제각각이기에 정리를 해보았다.

 

[기본]

title like '%keyword%'


[MySQL]
title like CONCAT('%',#{keyword},'%')


[Oracle]
title like '%' ||  #{keyword} || '%'


[MSSQL]
title like '%' + #{keyword} + '%'

'DB' 카테고리의 다른 글

Supabase: 차세대 백엔드 서비스 솔루션 🚀  (3) 2025.06.04
[MyBatis] 동적쿼리 foreach문  (0) 2020.06.13
[DB] Join의 종류  (0) 2020.05.30
[My-SQL] 날짜관련 함수 모음  (0) 2020.05.30

예를들어, DB에 insert를 10개 한다하면 나는 serviceimpl에서 for문을 10번 돌려가면서

 

insert를 했었다. 그러다보니 코드도 지저분해지는 것이 보이고 하여 MyBatis foreach를 접하게되었다.

 

MyBatis foreach문 지원 태그

 

collection : 전달받은 인자. List or Array 형태만 가능

item : 전달받은 인자 값을 alias 명으로 대체

open : 구문이 시작될때 삽입할 문자열

close : 구문이 종료될때 삽입할 문자열

separator : 반복 되는 사이에 출력할 문자열

index : 반복되는 구문 번호이다. 0부터 순차적으로 증가

 

예시)

1. 배열을 Map에 넣어 데이터를 보낼경우(mapper.xml에서 Collection은 DAO 변수와 일치시켜줘야한다!)

//DAO
public List<Members> getDeptList(String[] memArray) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("memArray",memArray);
		return sqlSession.selectList("getDeptList", map);
}
<!-- mapper.xml -->
<select id="getDeptList"  resultType="members">
SELECT * FROM members m
JOIN dept d ON m.dept_name = d.dept_name
WHERE m.emp_seq IN
<foreach collection="memArray" item="arr" open="(" close=")" separator=",">
 #{arr}
</foreach>
ORDER BY m.emp_seq;
</select>

 

2. 배열을 직접 보낼경우(mapper.xml에서 Collection은 array로 작성해야한다!)

//DAO
public List<Members> getDeptList(String[] memArray) {
		return sqlSession.selectList("getDeptList", memArray);
}
<!-- mapper.xml -->
<select id="getDeptList"  resultType="members">
SELECT * FROM members m
JOIN dept d ON m.dept_name = d.dept_name
WHERE m.emp_seq IN
<foreach collection="array" item="arr" open="(" close=")" separator=",">
 #{arr}
</foreach>
ORDER BY m.emp_seq;
</select>

 

3. List를 Map에 넣어 데이터를 보낼경우(mapper.xml에서 Collection은 DAO 변수와 일치시켜줘야한다!)

//DAO
public List<Members> getDeptList(List<Members> empList) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("empList",empList);
		return sqlSession.selectList("getDeptList", map);
}
<!-- mapper.xml -->
<select id="getDeptList"  resultType="members">
SELECT * FROM members m
JOIN dept d ON m.dept_name = d.dept_name
WHERE m.emp_seq IN
<foreach collection="empList" item="list" open="(" close=")" separator=",">
 #{list.emp_seq}
</foreach>
ORDER BY m.emp_seq;
</select>

 

4. 리스트를 직접 보낼경우(mapper.xml에서 Collection은 list로 작성해야한다!)

//DAO
public List<Members> getDeptList(List<Members> empList) {
		return sqlSession.selectList("getDeptList", empList);
}
<!-- mapper.xml -->
<select id="getDeptList"  resultType="members">
SELECT * FROM members m
JOIN dept d ON m.dept_name = d.dept_name
WHERE m.emp_seq IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
 #{item.emp_seq}
</foreach>
ORDER BY m.emp_seq;
</select>

'DB' 카테고리의 다른 글

Supabase: 차세대 백엔드 서비스 솔루션 🚀  (3) 2025.06.04
[MyBatis] RDBMS별 like 검색처리 방법  (0) 2020.06.13
[DB] Join의 종류  (0) 2020.05.30
[My-SQL] 날짜관련 함수 모음  (0) 2020.05.30

공부를 할때는 INNER JOIN만 주로 써왔는데

실제로 회사를 와보니 여러가지 JOIN을 쓸 일이 생각보다 많았다.

 

구글링을 하다보니 괜찮을 사진을 찾게되어 올린다.

이 사진 하나면 웬만한 JOIN은 문제없이 할 수 있을 것 같다.

 

LEFT OUTER JOIN(RIGHT는 반대)

두 테이블 중에서 오른쪽 테이블에 조인시킬 컬럼의 값이 없는 경우에 사용을 하게 됩니다. 왼쪽 테이블 (Table A)의 값은 모두 다 나오지만 오른쪽 테이블 (Table B)의 값은 매칭이 되는게 없으면 출력이 되지 않음.

말 그대로 왼쪽 테이블 정보는 무조건 다 나옴

왼쪽 테이블 정보는 무조건 다 나옴

 

FULL OUTER JOIN

FULL OUTER JOIN은 왼쪽  오른쪽 외부 조인 의 결과를 결합하고 조인 절의 양쪽에있는 테이블에서 모든 (일치하거나 일치하지 않는) 행을 반환함

내가 개발을 하면서 중요하다고 생각하는 함수에는 빨간색으로 표시해두었다.

 

dayofweek(date)

날짜를 한 주의 몇 번째 요일인지를 나타내는 숫자로 리턴한다.

(1 = 일요일, 2 = 월요일, ... 7 = 토요일)

mysql> select dayofweek('1998-02-03');

-> 3

 

weekday(date)

날짜를 한 주의 몇 번째 요일인지를 나타내는 숫자로 리턴한다. (0 = 월요일, 1=화요일 ... 6 = 일요일)

mysql> select weekday('1997-10-04 22:23:00');

-> 5

mysql> select weekday('1997-11-05');

-> 2

 

dayofmonth(date)

그 달의 몇 번째 날인지를 알려준다. 리턴 값은 1에서 31 사이이다.

mysql> select dayofmonth('1998-02-03');

-> 3

 

dayofyear(date)

한 해의 몇 번째 날인지를 알려준다. 리턴 값은 1에서 366 사이이다.

mysql> select dayofyear('1998-02-03');

-> 34

 

month(date)

해당 날짜가 몇 월인지 알려준다. 리턴 값은 1에서 12 사이이다.

mysql> select month('1998-02-03');

-> 2


dayname(date)

해당 날짜의 영어식 요일이름을 리턴한다.

mysql> select dayname("1998-02-05");

-> thursday


monthname(date)

해당 날짜의 영어식 월 이름을 리턴한다.

mysql> select monthname("1998-02-05");

-> february

 

quarter(date)

분기를 리턴한다 (1~ 4)

mysql> select quarter('98-04-01');

-> 2

 

week(date)

week(date,first)

인수가 하나일 때는 해달 날짜가 몇 번째 주일인지(0 ~ 52)를 리턴하고 2개일 때는 주어진 인수로 한 주의 시작일을 정해 줄 수 있다. 0이면 일요일을1이면 월요일을 한 주의 시작일로 계산해 몇 번째 주인가 알려준다.

mysql> select week('1998-02-20');

-> 7

mysql> select week('1998-02-20',0);

-> 7

mysql> select week('1998-02-20',1);

-> 8

 

year(date)

년도를 리턴한다.(1000 ~ 9999)

mysql> select year('98-02-03');

-> 1998


hour(time)

시간을 알려준다.(0 ~ 23)

mysql> select hour('10:05:03');

-> 10

 

minute(time)

분을 알려준다(0 ~ 59)

mysql> select minute('98-02-03 10:05:03');

-> 5


second(time)

초를 알려준다(0 ~ 59)

mysql> select second('10:05:03');

-> 3

 

period_add(p,n)

yymm 또는 yyyymm 형식으로 주어진 달에 n개월을 더한다. 리턴 값은 yyyymm의 형식이다.

mysql> select period_add(9801,2);

-> 199803


period_diff(p1,p2)

yymm 또는 yyyymm 형식으로 주어진 두 기간사이의 개월을 구한다

mysql> select period_diff(9802,199703);

-> 11

 

date_add(date,interval expr type)

date_sub(date,interval expr type)

adddate(date,interval expr type)

subdate(date,interval expr type)

위의 함수들은 날자 연산을 한다. 잘 만 사용하면 꽤나 편리한 함수 들이다. 모두 mysql 3.22 버전에서 새롭게 추가되었다. adddate() 과 subdate() 는 date_add() 와 date_sub()의 또 다른 이름이다.

인수로 사용되는 date 는 시작일을 나타내는 datetime 또는date 타입이다. expr 는 시작일에 가감하는 일수 또는 시간을 나타내는 표현식이다.

type 값의 의미
사용 예

second, seconds

minute, minutes

hour, hours
시간
day, days

month, months

year, years

minute_second, "minutes:seconds"
분:초
hour_minute, "hours:minutes"
시:분
day_hour, "days hours"
일 시
year_month, "years-months"
년 월
hour_second, "hours:minutes:seconds"
시 분
day_minute, "days hours:minutes"
일, 시, 분
day_second, "days hours:minutes:seconds"
일, 시, 분, 초

 

[예제]

mysql> select date_add("1997-12-31 23:59:59",interval 1 second);

-> 1998-01-01 00:00:00

mysql> select date_add("1997-12-31 23:59:59",interval 1 day);

-> 1998-01-01 23:59:59

mysql> select date_add("1997-12-31 23:59:59",interval "1:1" minute_second);

-> 1998-01-01 00:01:00

mysql> select date_sub("1998-01-01 00:00:00",interval "1 1:1:1" day_second);

-> 1997-12-30 22:58:59

mysql> select date_add("1998-01-01 00:00:00",interval "-1 10" day_hour);

-> 1997-12-30 14:00:00

mysql> select date_sub("1998-01-02", interval 31 day);

-> 1997-12-02

 

 

to_days(date)

주어진 날짜를 0000년부터의 일수로 바꾼다.

mysql> select to_days(950501);

-> 728779

mysql> select to_days('1997-10-07');

-> 729669

 

from_days(n)

주어진 일수 n로부터 날짜를 구한다

mysql> select from_days(729669);

-> '1997-10-07'

 

date_format(date,format)

format 의 정의에 따라 날자 혹은 시간을 출력한다. 매우 빈번히 쓰이는 함수 이다.

format 에 사용되는 문자는 다음과 같다.

 

%m
월이름 (january..december)

%w
요일명 (sunday..saturday)

%d
영어식 접미사를 붙인 일(1st, 2nd, 3rd, etc.)

%y
4자리 년도

%y
2자리 년도

%a
짧은 요일명(sun..sat)

%d
일(00..31)

%e
일(0..31)

%m
월(01..12)

%c
월(1..12)

%b
짧은 월이름 (jan..dec)

%j
한해의 몇 번째 요일인가 (001..366)

%h
24시 형식의 시간 (00..23)

%k
24시 형식의 시간 (0..23)

%h
12시 형식의 시간 (01..12)

%i
12시 형식의 시간 (01..12)

%l
시간 (1..12)

%i
분 (00..59)

%r
시분초12시 형식 (hh:mm:ss [ap]m)

%t
시분초 24시 형식 (hh:mm:ss)

%s
초 (00..59)

%s
초 (00..59)

%p
am 또는 pm 문자

%w
일주일의 몇 번째 요일인가(0=sunday..6=saturday)

%U
한해의 몇 번째 주인가(0..52). 일요일이 시작일

%u
한해의 몇 번째 주인가(0..52). 월요일이 시작일

%%
`%' 문자를 나타냄

 

위 표에 나와 있는 것들을 제외한 모든 문자는 그냥 그대로 출력된다.

 

mysql> select date_format('1997-10-04 22:23:00', '%w %m %y');

-> 'saturday october 1997'

mysql> select date_format('1997-10-04 22:23:00', '%h:%i:%s');

-> '22:23:00'

mysql> select date_format('1997-10-04 22:23:00',

'%d %y %a %d %m %b %j');

-> '4th 97 sat 04 10 oct 277'

mysql> select date_format('1997-10-04 22:23:00',

'%h %k %i %r %t %s %w');

-> '22 22 10 10:23:00 pm 22:23:00 00 6'


주의! : mysql 3.23 버전부터 % 기호가 각 형식문자 앞에 필요하게 되었다 그 이전 버전에서는 선택 사항이다.

 

 

time_format(time,format)

이 함수는 date_format()와 비슷한 역할을 하지만 단지 시,분,초 만을 나타낼 수 있다는 점이다.

 

curdate()

current_date()
오늘 날짜를 'yyyy-mm-dd' 또는 yyyymmdd 형식으로 리턴한다, 리턴 값은 이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라 달라진다.

mysql> select curdate();

-> '1997-12-15'

mysql> select curdate() + 0;

-> 19971215

 

curtime()

current_time()

'hh:mm:ss' 또는 hhmmss 형식으로 현재시간을 나타낸다. 리턴 값은 이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라 달라진다.

mysql> select curtime();

-> '23:50:26'

mysql> select curtime() + 0;

-> 235026

 

now()

sysdate()

current_timestamp()

오늘 날자와 현재 시간을 'yyyy-mm-dd hh:mm:ss' 또는 yyyymmddhhmmss 형식으로 리턴 한다, 역시 리턴 값은 이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라 달라진다. 실제 개발 시 사용자의 등록일시 등을 나타낼 때 유용하게 쓰이는 함수다. 뒷부분의 실전예제에서 보게 될 것이다.

mysql> select now();

-> '1997-12-15 23:50:26'

mysql> select now() + 0;

-> 19971215235026

 

unix_timestamp()

unix_timestamp(date)

인수가 없이 사용될 경우 현재 시간의 유닉스 타임스탬프를 리턴하고

만일 날짜형식의 date 가 인수로 주어진 경우에는 주어진 날짜의 유닉스 타임스탬프를 리턴한다 유닉스 타임스탬프 란 그리니치 표준시로 1970 년 1월 1일 00:00:00 이 후의 시간경과를 초단위로 나타낸 것이다.

mysql> select unix_timestamp();

-> 882226357

mysql> select unix_timestamp('1997-10-04 22:23:00');

-> 875996580


주의 : 만일 unix_timestamp함수가 timestamp 컬럼 에서 사용될 경우에는 주어진 시간이 타임스탬프로 바뀌지 않고 그대로 저장된다.

 

from_unixtime(unix_timestamp)

주어진 유닉스 타임스탬프 값으로부터 'yyyy-mm-dd hh:mm:ss' 또는 yyyymmddhhmmss 형식의 날짜를 리턴한다.

mysql> select from_unixtime(875996580);

-> '1997-10-04 22:23:00'

mysql> select from_unixtime(875996580) + 0;

-> 19971004222300

 

from_unixtime(unix_timestamp,format)

주어진 유닉스 타임스탬프 값을 주어진 날짜 형식에 맞게 바꿔서 보여준다. 여기서 사용되는 형식문자는 date_format() 함수에서 사용된 것과 같다.

아래 예에서 %x 는 형식문자가 아니므로 그냥 x 가 표시됨에 유의하기 바란다.

mysql> select from_unixtime(unix_timestamp(),

'%y %d %m %h:%i:%s %x');

-> '1997 23rd december 03:43:30 x'

 

sec_to_time(seconds)

주어진 초를 'hh:mm:ss' 또는 hhmmss 형식의 시간단위로 바꿔준다.

mysql> select sec_to_time(2378);

-> '00:39:38'

mysql> select sec_to_time(2378) + 0;

-> 3938

 

time_to_sec(time)

주어진 시간을 초 단위로 바꿔준다.

mysql> select time_to_sec('22:23:00');

-> 80580

mysql> select time_to_sec('00:39:38');

-> 2378

 

[예제]

쿼리문으로 날짜계산
$query = "SELECT (now() - interval ′1 month′)::timestamp"; // 현재 부터 한 달 전 날짜

$query = "SELECT (now() + interval ′6 month′)::timestamp"; // 현재 부터 6 달 후 날짜 ...

 

[Q/A] mysql에서 타임스탬프값을 날짜값으로 바꿔주는 함수 있나요?
select from_unixtime(날짜필드) ...

하시면 우리가 보는 시간으로 보일거예요~

 

 

[MySQL에서 제공하는 날자 관련 함수]

DAYOFMONTH(date) : 날짜만 리턴해주는 함수. (1-31) 한달을 단위로.
DAYOFYEAR(date) : 이역시 날짜만 리턴. (1-366) 1년을 단위로.
TO_DAYS(date) : 연도와 달을 모두 날짜화 시켜서 리턴해줍니다.
                            (1999-01-01 = (1999 * 365) + (01 * 31) + 1)
MONTH(date) : 달을 리턴해주는 함수.
DAYNAME(date) : 요일을 문자로 리턴. (ex :'Thursday')
MONTHNAME(date) : 달을 문자로 리턴. (ex :'February')
WEEK(date) : 해당 연도에 몇번째 주인지를 리턴 (0-52)
YEAR(date) : 연도를 리턴 (1000-9999)
HOUR(time) : 시간 리턴 
MINUTE(time) : 분 리턴
SECOND(time) : 초 리턴

DATE_FORMAT(date,format)

     `%W'    Weekday name (`Sunday'..`Saturday')
     `%D'    Day of the month with english suffix (`1st', `2nd', `3rd',
             etc.)
     `%Y'    Year, numeric, 4 digits
     `%y'    Year, numeric, 2 digits
     `%a'    Abbreviated weekday name (`Sun'..`Sat')
     `%d'    Day of the month, numeric (`00'..`31')
     `%e'    Day of the month, numeric (`0'..`31')
     `%m'    Month, numeric (`01'..`12')
     `%c'    Month, numeric (`1'..`12')
     `%b'    Abbreviated month name (`Jan'..`Dec')
     `%j'    Day of year (`001'..`366')
     `%H'    Hour (`00'..`23')
     `%k'    Hour (`0'..`23')
     `%h'    Hour (`01'..`12')
     `%I'    Hour (`01'..`12')
     `%l'    Hour (`1'..`12')
     `%i'    Minutes, numeric (`00'..`59')
     `%r'    Time, 12-hour (`hh:mm:ss [AP]M')
     `%T'    Time, 24-hour (`hh:mm:ss')
     `%S'    Seconds (`00'..`59')
     `%s'    Seconds (`00'..`59')
     `%p'    `AM' or `PM'
     `%w'    Day of the week (`0'=Sunday..`6'=Saturday)
     `%U'    Week (`0'..`52'), Sunday is the first day of the week.
     `%u'    Week (`0'..`52'), Monday is the first day of the week.
     `%%'    Single `%' characters are ignored.  Use `%%' to produce a
             literal `%' (for future extensions).

'DB' 카테고리의 다른 글

Supabase: 차세대 백엔드 서비스 솔루션 🚀  (3) 2025.06.04
[MyBatis] RDBMS별 like 검색처리 방법  (0) 2020.06.13
[MyBatis] 동적쿼리 foreach문  (0) 2020.06.13
[DB] Join의 종류  (0) 2020.05.30

+ Recent posts