날짜로 작업하는 MySQL
MySQL 날짜
날짜로 작업할 때 가장 어려운 부분은 삽입하려는 날짜 형식이 데이터베이스의 날짜 열 형식과 일치하는지 확인하는 것입니다.
데이터에 날짜 부분만 포함되어 있으면 쿼리가 예상대로 작동합니다. 그러나 시간 부분이 포함되면 더 복잡해집니다.
MySQL 날짜 데이터 유형
MySQL은 데이터베이스에 날짜 또는 날짜/시간 값을 저장하기 위한 다음 데이터 유형과 함께 제공됩니다.
-
DATE
- YYYY-MM-DD 형식 -
DATETIME
- 형식: YYYY-MM-DD HH:MI:SS TIMESTAMP
- 형식: YYYY-MM-DD HH:MI:SS-
YEAR
- YYYY 또는 YY 형식
참고: 날짜 데이터 유형은 데이터베이스에 새 테이블을 생성할 때 열에 설정됩니다!
날짜 작업
다음 표를 보십시오.
주문 테이블
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
2 | Camembert Pierrot | 2008-11-09 |
3 | Mozzarella di Giovanni | 2008-11-11 |
4 | Mascarpone Fabioli | 2008-10-29 |
이제 위의 표에서 OrderDate가 "2008-11-11"인 레코드를 선택하려고 합니다.
우리는 다음 SELECT
문장을 사용합니다:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
결과 집합은 다음과 같습니다.
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
참고: 관련된 시간 요소가 없으면 두 날짜를 쉽게 비교할 수 있습니다!
이제 "Orders" 테이블이 다음과 같다고 가정합니다("OrderDate" 열에 추가된 시간 구성요소에 주목).
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | Camembert Pierrot | 2008-11-09 15:45:21 |
3 | Mozzarella di Giovanni | 2008-11-11 11:12:01 |
4 | Mascarpone Fabioli | 2008-10-29 14:56:59 |
SELECT
위와 같은 문장을 사용한다면 :
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
우리는 결과를 얻지 못할 것입니다! 쿼리가 시간 부분이 없는 날짜만 찾고 있기 때문입니다.
팁: 쿼리를 간단하고 쉽게 유지 관리하려면 꼭 필요한 경우가 아니면 날짜에 시간 구성 요소를 사용하지 마십시오!