MySQL DATE 열을 사용하여 날짜 이후로 개월 수와 년 수를 구할 수있는 방법이 있습니까?Mysql - 월 및 연도 수
그래서 2009 년 1 월 1 일을 입력하면 1 년, 3 개월을 원합니다.
MySQL DATE 열을 사용하여 날짜 이후로 개월 수와 년 수를 구할 수있는 방법이 있습니까?Mysql - 월 및 연도 수
그래서 2009 년 1 월 1 일을 입력하면 1 년, 3 개월을 원합니다.
DateDiff 두 날짜 사이의 일의 차이를 반환 할 수 있습니다.
거기에서 직접 수학을해야 할 수도 있습니다. 모든 논리를 사용하여 저장 프로 시저를 만들 수 있지만 SQL의 대부분은 함수 언어로 설계되지 않았습니다.
편집 : 찾고있는 정보를 찾았습니다. 이 시도 :
DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), <date>)), '%c months and %Y years')
datediff() 결과에서 개월을 추출하기가 어려울 수 있습니다. 그 이유는 달의 일수가 달라지기 때문입니다. 윤년을 무시하면 연도가 가까워집니다. –
select mnth as months_between, mnth/12 as years_between
from
(select (year(<current date column>) - year(<older date column>))*12 +
(month(<current date column>) - month(<older date column)) as mnth
from <tables with date columns>
where <conditions to get your rows with the dates you need to compare>
)
또한
참조 Anthony Mollinaro의 SQL Cookbook, 날짜 산술에 대한 8 장
오늘 날짜를 사용하려면 현재 날짜 열로 'NOW()'를 사용할 수 있습니다. –
2009/03/15 2009/02/16 같은 상황이 발생할 수 있으므로 100 % 정확하지는 않습니다. 이것은 1 개월이 아니지만 스크립트의 반환 값이됩니다. –
나는 이것이 OPs 비즈니스 요구 사항에 달려 있다고 생각합니다. 둘 사이의 비교가 1/0인지 여부입니다. 그러나 그렇습니다, 당신은 기술적으로 정확합니다. –
글쎄, 2010 년, 1 년이 될거야. 그리고 현재 3 월 17 일에 3 개월이 넘었습니다. 그래서 jwzk이 옳습니다. –