데이터 계산하기
Mysql은 날짜로 나이를 계산하고, 날짜의 특정 부분을 추출하는 여러가지 함수를 제공한다.
각 이름의 현재날짜 - 생일날짜로 나이 계산
- CURDATE() : 현재 날짜를 가져온다.
- RIGHT() : 첫번째 매개변수의 오른쪽부터 두번째 매개변수의 자리수까지를 반환한다.
- as(alias)를 사용하여 전체 수식을 이해하기 쉬운 문자(age)로 사용한다.
- 'death <> NULL'을 사용하지 않고 'death IS NOT NULL'을 사용하는 이유는 NULL이 일반적인 비교 연산자를 가지고는 비교 연산을 할 수 없는 특별한 값을 가지기 때문이다.
Mysql은 날짜로 나이를 계산하고, 날짜의 특정 부분을 추출하는 여러가지 함수를 제공한다.
각 이름의 현재날짜 - 생일날짜로 나이 계산
mysql> SELECT name, birth, CURDATE(),
-> ( YEAR( CURDATE() ) - YEAR( birth ) )
-> - ( RIGHT( CURDATE(), 5 ) < RIGHT( birth, 5 ) )
-> AS age
-> FROM pet;
+-------+------------+------------+------+
| name | birth | CURDATE() | age |
+-------+------------+------------+------+
| Nabi | 2006-12-31 | 2006-12-21 | -1 |
| Hoya | 2006-10-31 | 2006-12-21 | 0 |
| Puppy | 2006-12-04 | 2006-12-21 | 0 |
| Taeji | 2004-10-02 | 2006-12-21 | 2 |
+-------+------------+------------+------+
4 rows in set (0.00 sec)
- YEAR() : 날짜에서 연도 부분을 가져온다.-> ( YEAR( CURDATE() ) - YEAR( birth ) )
-> - ( RIGHT( CURDATE(), 5 ) < RIGHT( birth, 5 ) )
-> AS age
-> FROM pet;
+-------+------------+------------+------+
| name | birth | CURDATE() | age |
+-------+------------+------------+------+
| Nabi | 2006-12-31 | 2006-12-21 | -1 |
| Hoya | 2006-10-31 | 2006-12-21 | 0 |
| Puppy | 2006-12-04 | 2006-12-21 | 0 |
| Taeji | 2004-10-02 | 2006-12-21 | 2 |
+-------+------------+------------+------+
4 rows in set (0.00 sec)
- CURDATE() : 현재 날짜를 가져온다.
- RIGHT() : 첫번째 매개변수의 오른쪽부터 두번째 매개변수의 자리수까지를 반환한다.
- as(alias)를 사용하여 전체 수식을 이해하기 쉬운 문자(age)로 사용한다.
mysql> SELECT name, birth, CURDATE(),
-> ( YEAR( CURDATE() ) - YEAR( birth ) )
-> - ( RIGHT( CURDATE(), 5 ) < RIGHT( birth, 5 ) )
-> AS age
-> FROM pet;
-> ORDER BY age;
- ORDER BY 구문을 사용하여 age 로 정렬할 수도 있다.-> ( YEAR( CURDATE() ) - YEAR( birth ) )
-> - ( RIGHT( CURDATE(), 5 ) < RIGHT( birth, 5 ) )
-> AS age
-> FROM pet;
-> ORDER BY age;
mysql> SELECT name, birth, death
-> FROM pet
-> WHERE death IS NOT NULL;
+-------+------------+------------+
| name | birth | death |
+-------+------------+------------+
| Taeji | 2004-10-02 | 2006-03-30 |
+-------+------------+------------+
1 row in set (0.00 sec)
- death 값이 채워진(NULL이 아닌) 레코드의 'name, birth, death' 필드를 선택한다.-> FROM pet
-> WHERE death IS NOT NULL;
+-------+------------+------------+
| name | birth | death |
+-------+------------+------------+
| Taeji | 2004-10-02 | 2006-03-30 |
+-------+------------+------------+
1 row in set (0.00 sec)
- 'death <> NULL'을 사용하지 않고 'death IS NOT NULL'을 사용하는 이유는 NULL이 일반적인 비교 연산자를 가지고는 비교 연산을 할 수 없는 특별한 값을 가지기 때문이다.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.
,