DOB의 계산 나이는 비교적 간단하지만 데이터베이스의 다른 데이터 입력 형식과 관련된 문제가 있습니다. 또한 PHP를 사용하면이 작업이 더 쉬워 질 수 있지만 PHP는 알지 못하고 MySQL과 만 작업 할 수 있습니다.MySQL : 계산할 필드의 출력 수정
DB에 입력 된 DOB는 "월/일/년"또는 "00/00/0000"으로 입력됩니다. 그러나 오늘 날짜에 대해 계산할 때 날짜는 "년 - 월 - 일"또는 "0000-00-00"으로 형식화됩니다. 또한 DOB 필드에 배치 된 월은 한 달 (1/01/1999) 또는 두 달 (01/01/1999) 일 수 있으므로 일관성이 없습니다.
나는 DOB를 연령 계산에보다 적합한 형식으로 출력하기 위해 CONCAT, SUBSTRING 및 LOCATE를 활용하기 위해 아래를 사용하려고합니다. 나는 내가 가깝다고 생각하지만 거기에는별로 없다. 어떤 도움이라도 대단히 감사 할 것입니다.
SELECT
CONCAT(SUBSTRING(APPU_DOB,-4,4),'-', SUBSTRING(APPU_DOB,LOCATE('/', APPU_DOB),1),'-',SUBSTRING(APPU_DOB,4,2))
FROM APPU_APP_USER
JOIN APPL_APP ON APPU_APPL_ID = APPL_ID
WHERE DATE_FORMAT(APPL_CREATE_DT, '%Y-%M-%D') >= '2014-01-01';
실용적이지 않지만 APPU_DOB을 문자열 유형 대신 날짜 유형으로 저장하도록 테이블을 리팩터링해야합니다. 올바른 타이핑을 통해 직면하는 것과 같은 문제를 피할 수 있습니다. –
여기에 appu_dob 열이 있습니까? –