저는 MySQL 및 phpMyAdmin을 사용하여 작업하고 있습니다. 내 DB에 '날짜'필드가 있고 각 레코드/행의 '날짜'필드에 날짜 이후 경과 일수를 계산하고 표시하는 MySQL_db 필드를 만들어야합니다.저장된 날짜 필드를 사용하여 전달 된 일 수를 계산하는 필드를 계산했습니다.
PHP로 코드를 생성 할 수있는 능력이 없습니다.
MySQL에서이 계산을 표시 할 수있는 필드를 만들 수있는 방법이 있습니까?
저는 MySQL 및 phpMyAdmin을 사용하여 작업하고 있습니다. 내 DB에 '날짜'필드가 있고 각 레코드/행의 '날짜'필드에 날짜 이후 경과 일수를 계산하고 표시하는 MySQL_db 필드를 만들어야합니다.저장된 날짜 필드를 사용하여 전달 된 일 수를 계산하는 필드를 계산했습니다.
PHP로 코드를 생성 할 수있는 능력이 없습니다.
MySQL에서이 계산을 표시 할 수있는 필드를 만들 수있는 방법이 있습니까?
현재 (미래에 당신을 위해 유용 할 수 있습니다 MySQL은 및 기타 기능)을 CURDATE()
및 DATEDIFF()
기능에 대해 읽고 싶은 있습니다 https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
이 테이블에 내장합니다 , 당신은 VIEW 사용할 수 있습니다
CREATE VIEW MyView AS
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
의 MySQL 5.7는 식을 기반으로 가상 열을 추가 할 수 있습니다 generated columns 지원을하지만, 비 결정적를 사용하기 때문에이이 경우에 작동하지 않습니다 그러한 표현식에서는 CURDATE()와 같은 함수를 사용할 수 없습니다.
ALTER TABLE MyTable ADD COLUMN days_since INT AS (DATEDIFF(CURDATE(), mydatefield));
ERROR 3102 (HY000): Expression of generated column 'days_since' contains a disallowed function.
응용 프로그램 (PhP) 코드를 변경할 수있는 경우이 함수를 만들기 위해 DATEDIFF()를 사용할 수 있음을 알고 있습니다. 나는 할 수 없다. 나의 유일한 의지는 문제의 '날짜'에서 '일수'를 MySQL 테이블에서 바로 가져 오는 것입니다. 그게 가능하지 않으면 나에게 다른 옵션을 사용할 수 없습니다. –
나는 왜 그 견해가 당신의 필요를 충족시키지 못하는지 이해하지 못한다고 생각합니다. –
계산 된 입력란을 추가하기위한 ALTER TABLE 일 뿐이니? –
아마도 내가 분명히해야합니다. 내가 묻는 것은 MySQL 테이블에 필드를 생성하는 방법이며, 동일한 테이블 레코드/행에있는 기존 DATE 필드의 일수를 계산합니까? –
PHP 태그가 왜 필요합니까? – Strawberry