날짜 매개변수만 있는 MySQL 타임스탬프 날짜 비교

Mehvish Ashiq 2023년6월20일
  1. MySQL의 DATE()CAST()CONVERT()
  2. 날짜 매개변수만 있는 MySQL 타임스탬프 날짜 비교
  3. DATE()를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
  4. CAST()를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
  5. CONVERT()를 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
  6. BETWEEN을 사용하여 MySQL 타임스탬프 날짜를 날짜 매개변수와만 비교
날짜 매개변수만 있는 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 타임스탬프 날짜를 날짜 매개변수로만 비교하기 위해 IDCOL_DATETIME이라는 두 가지 속성을 사용하여 date_comparison이라는 이름의 테이블을 생성합니다. 여기서 ID는 int 유형이고 COL_DATETIMETIMESTAMP입니다.

다음 쿼리를 사용하여 이 테이블을 생성하여 이 자습서를 따라할 수도 있습니다.

예:

# 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)
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - MySQL Timestamp