MySQL에서 DATETIME에서 DATE 및 TIME을 분리하는 방법


82

테이블에 DATETIME 필드를 저장하고 있습니다. 각 값은 다음과 같습니다. 2012-09-09 06:57:12 .

이 구문을 사용하고 있습니다.

   date("Y-m-d H:i:s");

이제 내 질문은 데이터를 가져 오는 동안 단일 MySQL 쿼리를 사용하여 어떻게 날짜와 시간을 개별적으로 가져올 수 있습니까?

2012-09-09 와 같은 날짜 및 06:57:12 와 같은 시간 .


아마 당신이 찾고있는 DATE_FORMAT이 아닌 DATETIME당신이 날짜를 찾고 있다면 당신은 시간과 기본 시간을 찾고 있다면 그것은 당신에게 기본 날짜를 제공하기 때문에, 내 대답은 아래를 참조하십시오.
오우삼

답변:


126

당신은 그 사용하여 달성 할 수 DATE_FORMAT ()을 ( 더 다른 형식의 링크를 클릭 )

SELECT DATE_FORMAT(colName, '%Y-%m-%d') DATEONLY, 
       DATE_FORMAT(colName,'%H:%i:%s') TIMEONLY

SQLFiddle 데모


안녕, 가치를 얻는 방법 ?? echo DATEONLY날짜 인쇄 및 echo TIMEONLY시간 인쇄에 사용할 수 있습니까 ?? 또는 무엇을??
Miss Rosy

@MissRosy 예, 별칭 ( 예 : DATEONLY 및 TIMEONLY )을 사용하여 원하는 값을 얻을 수 있습니다.
오우삼


@MissRosy 천만에요. 가장 좋은 점은 원하는 형식으로 형식을 지정할 수 있다는 것입니다.
오우삼

@ John..yes..I 사랑 일 : 그
미스 장미 빛

49

mysql 문서에 따르면 DATE () 함수는 datetime feild의 날짜 부분을 가져오고 시간 부분에 대해서는 TIME ()을 가져옵니다. 그래서 나는 시도 할 것입니다.

select DATE(dateTimeFeild) as Date, TIME(dateTimeFeild) as Time, col2, col3, FROM Table1 ...

17

시험:

SELECT DATE(`date_time_field`) AS date_part, TIME(`date_time_field`) AS time_part FROM `your_table`

이것은을받지 않습니다 DATETIME사용자 만이 요구되는 것과. 기본값으로 전체 날짜와 시간을 제공합니다. 이 링크 매도
오우삼

1
그것은 생성 September, 09 2012 00:00:00-0400을위한 날짜January, 01 1970 03:20:38-0500대한 시간
오우삼

4
또한, 쿼리에 따라 그것은 MySQL의 시간 부분으로 date_part로 2012년 9월 9일 및 6시 57분 12초을 제공합니다
수 디르 Bastakoti

@Sudhir .. 답장 해주셔서 감사합니다. 이것은 또한 정확하지만 .. DATE_FORMAT()사용하면 더 유연하게 만들 수 있습니다.
Miss Rosy

1
@MissRosy 환영, 그래 당신은 정장 가장하고보다 유연하다는 솔루션을 사용한다 .. :)
수 디르 Bastakoti


-2

데이트 전용
date("Y-m-d");

그리고 시간 사용
date("H:i:s");


6
이봐 당신이주는 PHP의 솔루션이 아닌 SQL :)
maq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.