mysql에서 문자열을 날짜로 변환하는 방법은 무엇입니까?


149

a string역할을 하는 열이 date있고로 선택하고 싶습니다 date.

가능합니까?

내 샘플 데이터 형식은 다음과 같습니다. month/day/year->12/31/2011

답변:


258

MySQL 에서 말했듯이 날짜 텍스트가 날짜 필드문자열 열을 사용 하면 할 수 있습니다

SELECT  STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM    yourtable

WHERE절 에서 이러한 날짜 문자열을 처리 할 수도 있습니다 . 예를 들어

SELECT whatever
  FROM yourtable
 WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY

이런 식으로 모든 종류의 날짜 / 시간 레이아웃을 처리 할 수 ​​있습니다. 를 참조하십시오 의 형식 지정 DATE_FORMAT()기능 당신의 두 번째 매개 변수에 넣을 수있는 볼 STR_TO_DATE().


6
내가 대신 일의 간격 7 DAY해야한다고 생각
페라 Odeh

1
"dd-mmm-yyyy"형식과 같은 char 열이 있습니다. "dd-mm-yyyy"형식으로 쿼리하려면 어떻게합니까?
MAX

51
STR_TO_DATE('12/31/2011', '%m/%d/%Y')

날짜는 31/11/1015와 같은 DD / MM / YYYY 형식으로 저장됩니까?
Vipul Hadiya

2
@VipulHadiya는 날짜 형식 문자열을 다음 %d/%m/%Y과 같이 변경합니다 STR_TO_DATE('31/11/1015', '%d/%m/%Y'). 출력 YYYY-MM-DD형식은 DATE 데이터 형식으로되어 있습니다.
fyrye

1
코드 전용 답변은 StackOverflow에서 가치가 낮습니다. 이 정답을 개선하십시오.
mickmackusa

11

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
위의 페이지를 사용하여 MySQL에서 더 많은 함수를 참조하십시오.

SELECT  STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM    table

예를 들어 아래 쿼리를 사용하여 출력을 얻으십시오.

SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table

문자열 형식의 경우 아래 링크를 사용하십시오

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format


10

또 다른 두 가지 예가 있습니다.

일, 월 및 년을 출력하려면 다음을 사용할 수 있습니다.

select STR_TO_DATE('14/02/2015', '%d/%m/%Y');

어느 생산 :

2015-02-14

시간을 출력하려면 다음을 사용할 수 있습니다.

select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');

어느 생산 :

2017-02-14 23:38:12

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.