반응형
SQL select query by date
파이썬뿐만 아니라 mySQL, mariaDB 등에서 SQL 쿼리를 작성하면서 날짜를 조건으로 select 하고 싶을 때가 있다. where 절은 사용하기 나름대로 방법이 많아서 간단하게 정리해보려고 한다.
다음과 같이 설정한 상태로 살펴보자.
today = datetime.datetime.now().strftime('%Y-%m-%d')
tommorow = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y-%m-%d')
between 사용하기
today≤reg_date≤tommorow인 경우만 select 한다.
참고로 today와 tommorow는 날짜 값이지만, 인식 될 때 00:00:00을 포함하고 있기 때문에 예를 들어 2023-08-03 00:00:00≤reg_date≤2023-08-04 00:00:00 이 된다.
select *
from example
where reg_date between '{today}' and '{tommorow}';
관계 연산자(relational operator) 사용하기
between와 유사하지만 관계 연산자(<, >, ≤, ≥)를 통해 원하는 범위 내의 경우만 select 한다.
다음과 같은 경우는 today 00:00:00≤reg_date<tommorow 00:00:00인 경우이다.
select *
from example
where reg_date >= '{today}' and reg_date < '{tommorow}';
like 사용하기
today로 시작하는 reg_date인 경우만 select 한다.
즉, 오늘 날짜로 된 데이터만 가져온다.
select *
from example
where reg_date like '{today}%';
date 함수 사용하기
today와 같은 날짜인 reg_date인 경우만 select 한다.
즉, 오늘 날짜로 된 데이터만 가져온다.
select *
from example
where date(reg_date) = '{today}';
반응형
'Python' 카테고리의 다른 글
[python] datetime resample, groupby with Grouper (0) | 2023.08.07 |
---|---|
[python] pandas.DataFrame.round 반올림 (0) | 2023.08.06 |
[python] datetime columns difference 구하기 (0) | 2023.08.04 |
[python] DatetimeIndex 만들기 - pandas.date_range (0) | 2023.08.03 |
[python error] SQL syntax error 1064 (0) | 2023.08.02 |