Programmers/SQL
[mysql/oracle] 입양 시각 구하기(1)
Anoi
2023. 2. 3. 21:57
문제

결과

mysql
1. date_format
1
2
3
4
5
|
SELECT date_format(datetime, '%H') hour, count(*) COUNT
from animal_outs
where date_format(datetime, '%H') between 9 and 19
group by date_format(datetime, '%H')
order by HOUR
|
cs |
처음에 date_format으로 풀었는데 생각해보니까 시간 하나만 뽑으면 되는 거라서 hour을 사용하면 된다.
2. hour
1
2
3
4
5
|
SELECT hour(datetime) hour, count(*) COUNT
from animal_outs
where hour(datetime) between 9 and 19
group by hour(datetime)
order by HOUR
|
cs |
hour(시간, 날짜 컬럼) - mysql
oracle
1. to_char
1
2
3
4
5
|
SELECT TO_CHAR(DATETIME,'HH24') HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
WHERE TO_CHAR(DATETIME,'HH24') BETWEEN 09 AND 19
GROUP BY TO_CHAR(DATETIME,'HH24')
ORDER BY TO_CHAR(DATETIME,'HH24');
|
cs |
mysql과 같은 결과가 나오지만 왜인지 09시가 아닌 9로 나와야 정답으로 인정된다.
2. to_char + ltrim
1
2
3
4
5
|
SELECT LTRIM(TO_CHAR(DATETIME,'HH24'),'0') HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
WHERE TO_CHAR(DATETIME,'HH24') BETWEEN 09 AND 19
GROUP BY TO_CHAR(DATETIME,'HH24')
ORDER BY TO_CHAR(DATETIME,'HH24');
|
cs |
LTRIM으로 왼쪽에 있는 9를 지웠다.
