날짜 매개변수만 있는 MySQL 타임스탬프 날짜 비교
-
MySQL의
DATE()
대CAST()
대CONVERT()
- 날짜 매개변수만 있는 MySQL 타임스탬프 날짜 비교
-
DATE()
를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교 -
CAST()
를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교 -
CONVERT()
를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교 -
BETWEEN
을 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
오늘은 DATE()
, CAST()
및 CONVERT()
함수를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교합니다.
MySQL의 DATE()
대 CAST()
대 CONVERT()
다음은 각 기능에 대한 간략한 소개입니다. 여기를 클릭하면 각각에 대한 더 많은 예를 찾을 수 있습니다.
MySQL의 DATE()
메서드
DATE()
메소드는 타임스탬프 또는 DateTime 표현식에서 날짜 부분을 추출합니다. DATE
, TIMESTAMP
또는 DATETIME
유형이어야 하는 하나의 매개변수만 사용합니다.
전달된 인수가 언급된 유형이 아닌 다른 유형에 속하는 경우 NULL
을 반환합니다. 이 기능은 MySQL 버전 4.0 이상을 사용하는 경우 사용할 수 있습니다.
MySQL의 CONVERT()
메서드
CONVERT()
메소드는 특정 값을 지정된 데이터 유형으로 변환합니다. 예를 들어 TIMESTAMP
유형의 값을 DATE
유형으로 변환할 수 있습니다.
두 개의 매개변수가 필요하며 둘 다 필요합니다. 첫 번째 매개변수는 변환될 값이고 다른 매개변수는 지정된 값이 변환될 데이터 유형입니다.
MySQL 버전 4.0 이상에서 사용할 수 있습니다.
MySQL의 CAST()
메서드
CAST()
메서드는 위에서 설명한 CONVERT()
와 유사합니다. 한 데이터 유형의 값을 다른 데이터 유형으로 변환하는 데 사용합니다.
예를 들어 DateTime 값을 DATE
유형으로 변환할 때입니다. CONVERT()
메서드와 마찬가지로 변환할 값과 변환하려는 데이터 유형의 두 가지 값도 사용합니다.
MySQL 버전 4.0 이상이면 이 기능을 사용할 수 있습니다.
날짜 매개변수만 있는 MySQL 타임스탬프 날짜 비교
MySQL 타임스탬프 날짜를 날짜 매개변수로만 비교하기 위해 ID
및 COL_DATETIME
이라는 두 가지 속성을 사용하여 date_comparison
이라는 이름의 테이블을 생성합니다. 여기서 ID
는 int 유형이고 COL_DATETIME
은 TIMESTAMP
입니다.
다음 쿼리를 사용하여 이 테이블을 생성하여 이 자습서를 따라할 수도 있습니다.
예:
# Create a table
CREATE TABLE date_comparison(
ID INT NOT NULL AUTO_INCREMENT,
COL_DATETIME TIMESTAMP NOT NULL,
PRIMARY KEY (ID));
# Insert data
INSERT INTO date_comparison(col_datetime)
VALUES
('2001-11-15 09:50:00'),
('2006-08-09 04:30:00'),
('2001-11-15 23:30:00'),
('2005-06-03 06:22:11'),
('2004-01-01 21:42:17');
# Show all data
SELECT * FROM date_comparison;
출력:
+----+---------------------+
| ID | col_datetime |
+----+---------------------+
| 1 | 2001-11-15 09:50:00 |
| 2 | 2006-08-09 04:30:00 |
| 3 | 2001-11-15 23:30:00 |
| 4 | 2005-06-03 06:22:11 |
| 5 | 2004-01-01 21:42:17 |
+----+---------------------+
5 rows in set (0.00 sec)
이제 특정 날짜의 레코드를 검색하려고 합니다. 예를 들어 2005-06-03
날짜만 해당됩니다. 날짜 매개변수를 TIMESTAMP
유형의 모든 col_datetime
열 값과 비교해야 합니다.
DATE()
를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
따라서 타임스탬프 날짜를 날짜 매개변수와 비교할 수 있는 방법은 다음과 같습니다.
예:
SELECT * FROM date_comparison WHERE DATE(col_datetime) = '2005-06-03';
출력:
+----+---------------------+
| ID | col_datetime |
+----+---------------------+
| 4 | 2005-06-03 06:22:11 |
+----+---------------------+
1 row in set (0.00 sec)
날짜에만 초점을 맞추면 DATE()
함수를 사용하여 col_datetime
을 날짜로 변환할 수 있습니다.
예:
SELECT ID, DATE(col_datetime) FROM date_comparison
WHERE DATE(col_datetime) = '2005-06-03';
출력:
+----+--------------------+
| ID | DATE(col_datetime) |
+----+--------------------+
| 4 | 2005-06-03 |
+----+--------------------+
1 row in set (0.00 sec)
CAST()
를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
또한 CAST()
함수를 사용하여 타임스탬프 날짜를 날짜 매개변수와만 비교할 수 있습니다.
예:
SELECT ID, CAST(col_datetime AS DATE) FROM date_comparison
WHERE CAST(col_datetime AS DATE) = '2005-06-03';
출력:
+----+----------------------------+
| ID | CAST(col_datetime AS DATE) |
+----+----------------------------+
| 4 | 2005-06-03 |
+----+----------------------------+
1 row in set (0.00 sec)
CONVERT()
를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
CONVERT()
함수는 타임스탬프를 날짜와만 비교할 수도 있습니다.
예:
SELECT ID, CONVERT(col_datetime, DATE) FROM date_comparison
WHERE CONVERT(col_datetime, DATE) = '2005-06-03';
출력:
+----+-----------------------------+
| ID | CONVERT(col_datetime, DATE) |
+----+-----------------------------+
| 4 | 2005-06-03 |
+----+-----------------------------+
1 row in set (0.00 sec)
BETWEEN
을 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
다음 솔루션은 col_datetime
열의 인덱스를 사용할 수 있기 때문에 col_datetime
열(TIMESTAMP
유형 포함)에 인덱스가 있는 경우 가장 빠릅니다.
예:
SELECT * FROM date_comparison
WHERE col_datetime
BETWEEN '2005-06-03 00:00:00' AND '2005-06-03 23:59:59';
출력:
+----+---------------------+
| ID | col_datetime |
+----+---------------------+
| 4 | 2005-06-03 06:22:11 |
+----+---------------------+
1 row in set (0.00 sec)