SQL Working With Dates

w3schools.com 을 참조하여 해석해본 자료입니다.

기본적으로 실행문의 결과값은 사이트에 직접가서 실행해보고 결과를 확인하는것이 좋습니다.

결과값이 너무 큰 경우 일부만 발췌하거나 기록하지 않았습니다.

SQL Dates

날짜 작업을 할 때 가장 어려운 부분은 삽입하려는 날짜 형식이 데이터베이스의 날짜 열 형식과 일치하는지 확인하는 것입니다.

데이터에 날짜 부분 만 포함되어 있으면 쿼리가 예상대로 작동합니다. 그러나 시간 부분이 관련되면 더 복잡해집니다.


SQL Date Data Types

MySQL 에는 데이터베이스에 날짜 또는 날짜 / 시간 값을 저장하기위한 다음 데이터 유형이 있습니다:

  • DATE - format YYYY-MM-DD
  • DATETIME - format: YYYY-MM-DD HH:MI:SS
  • TIMESTAMP - format: YYYY-MM-DD HH:MI:SS
  • YEAR - format YYYY or YY

SQL Server에는 데이터베이스에 날짜 또는 날짜 / 시간 값을 저장하기위한 다음 데이터 형식이 있습니다:

  • DATE - format YYYY-MM-DD
  • DATETIME - format: YYYY-MM-DD HH:MI:SS
  • SMALLDATETIME - format: YYYY-MM-DD HH:MI:SS
  • TIMESTAMP - format: a unique number

Note : 데이터베이스에 새 테이블을 만들 때 열에 대해 날짜 유형이 선택됩니다!


SQL Working with Dates

관련된 시간 구성 요소가 없으면 두 날짜를 쉽게 비교할 수 있습니다!

다음의 “Orders” 테이블이 있다고 가정합니다:

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

이제 “Order”테이블이 다음과 같이 보입니다 ( “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'

우리는 결과를 얻지 못할 것이다! 이는 쿼리가 시간 부분이 없는 날짜만 찾고 있기 때문입니다.

Tip: 검색어를 간단하고 쉽게 유지하려면 날짜에 시간 구성 요소를 허용하지 마십시오!

Comments