2013-02-26 5 views
1

"datum"(varchar (25)) 특성을 포함하는 테이블이있는 데이터베이스가 제공됩니다.그룹화 날짜, 주어진 varchar (문자열)

'2013년 2월 25일, 3시 47분 P'나는 테이블을 쿼리 할 필요가

과 : 때문에 가난한 데이터베이스 디자인,이 열은 예를 들어, 문자열 형식으로 날짜 값으로 가득 모든 그룹을 일별로 그룹화하십시오 (위의 예에서 25 개). 이 작업을 수행하려면 DATE_FORMAT (datum, '') 함수를 사용해야합니까? 그 함수를 사용할 때마다 널 값을 얻는다.

+0

매개 변수로 전달한 형식 문자열을 알려 주시면 도움이됩니다. –

+0

DATE_FORMAT (datum, '% M % e, % Y, % h : % i % p') – Kukiwon

답변

2

은 문자열이기 때문에, 당신은 STR_TO_DATE

SELECT * 
FROM tableName 
WHERE STR_TO_DATE(datum,'%M %e, %Y, %h:%i %p') .... 

에게 둘 사이의 차이를 이용하여 유효한 날짜 값으로 변환해야합니다

STR_TO_DATE을 -
DATE_FORMAT 데이트 문자열로 변환 - 날짜를 문자열로 변환합니다.

2

STR_TO_DATE() 기능 (documentation)을 사용해 보셨습니까?

DATE_FORMAT()의 역으로, 문자열이 아닌 첫 번째 매개 변수로 날짜 값을 사용합니다. 그 다음 그것을 사용하여 정확한 날짜 값을 얻을 수 있습니다.

다음은 쿼리와 일치하는 SQL 명령입니다. 테스트를 거쳐 작동합니다.

SELECT * 
FROM tablename 
WHERE DATE_FORMAT(STR_TO_DATE(datum,'%M %e, %Y, %h:%i %p'), '%d') = 25; 
+0

아래 예제를 사용하여 STR_TO_DATE()를 사용하고 있습니다. 감사! – Kukiwon