2013-07-25 5 views
0

여기 (sqlfiddle에서) 내 테이블 설정 방법에 대한 설명 http://sqlfiddle.com/#!2/86a54d/2mysql datetime 열을 날짜로 변환하는 방법은 무엇입니까?

는 기본적으로, 두 개의 열이 있습니다. 하나는 varchar이고 이름을 포함합니다. 다른 하나는 datetime이며 시간이있는 특정 날짜를 포함합니다.

datetime의 날짜가 오늘 날짜와 일치하는 행을 선택하고 싶습니다. 나는

select * from alerts_to_send where date_to_send = now() 
select * from alerts_to_send where date_to_send = curdate() 

내가 바로 여기에서 어디로 ... 어떤 아이디어가 크게 감상 할 수있다 :)

그냥 내가 선택하려는, 다시 명확하지 않다 ... 같은 것들을 시도 오늘 날짜가 내 datetime 유형 열의 날짜 부분과 일치하는 행. http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

답변

1

는 DATE_FORMAT FUNC이

select * from alerts_to_send 
    where DATE_FORMAT(date_to_send,'%m-%d-%Y') = DATE_FORMAT(now(),'%m-%d-%Y') 

fiddle

+0

당신은 최고입니다! :) 고마워요 @ echo_Me – Feign

+0

그것이 완벽하게 작동했음을 의미합니다 btw ... 최소 제한 시간이 만났을 때 응답으로 표시합니다! – Feign

+0

당신은 환영합니다 :). –

0

당신은

여기
select * from alerts_to_send where date_format(date_to_send, "%m/%d/%Y") = date_format(now(), "%m/%d/%Y") 

는 DATE_FORMAT에 대한 참조입니다 mysql을위한 date_format 기능을 사용할 수 있습니다 그래서 더 좋을 것

select * from alerts_to_send where date(date_to_send) = date(now())

그러나 당신은 그것을 인덱스를 사용에 문제가있는 것 :

select * from alerts_to_send where cast(date_to_send as date) = curdate() 
+0

답변 주셔서 감사합니다. 이미 답변을 드렸습니다. – Feign

0

대안을 시도해보십시오

0

그것은 심지어 짧아 질 수있다 : 당신이 날짜로 날짜를 변환 할 수 있습니다 기

select * from alerts_to_send where date_to_send >= date(now()) and date_to_send < date(now()) + INTERVAL 1 DAY

관련 문제