2012-09-12 3 views
0

지금 phpmyadmin에 있는데 데이터가 삽입 될 때 현재 날짜를 스탬프 처리하는 필드를 설정하려고합니다.SQL을 설정하는 날짜 스탬프

지금은 DATETIME 유형으로 설정했지만 시간이 포함되었습니다. 나는 단지 데이트를 원해. 또한 GETDATE()에 기본 값으로 DATETIME으로 설정 및 저장 시도했지만 오류가 발생했습니다 :

#1067 - Invalid default value for 'upload_date' 

사람이 제발 어떻게 해야할지를?

답변

5

값을 함수에 설정할 수 없으므로 상수 값이어야합니다.

column_name TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

그러나 열의 기본값을 설정하는 TRIGGER을 사용할 수 있습니다 : 그것은 또한 time 부분을 포함하지만, 하나 개 예외CURRENT_TIMESTAMP입니다. 예를 들어 :

또한
CREATE TRIGGER trigger_name BEFORE INSERT ON your_table 
    FOR EACH ROW SET NEW.date_column = DATE(NOW()); 

NOW()TIME 부분을 절단하는 DATE()를 사용합니다. 타임 스탬프 열 수 있도록 컬럼을 필요로 -

+0

이 변수는'your_table_default_date_trigger'입니까? your_table 부분을 이해하지만 'default_date_trigger'에도 붙어 있습니까 ?? –

+0

@SofianeMerah : 그것은 변수가 아니며 방아쇠의 이름 일뿐입니다. 원하는대로 호출 할 수 있지만 트리거 이름에는 일반적으로 테이블 이름과 트리거 유형이 포함됩니다. 예 : 'table_insert_trigger'. –

+0

아 감사합니다. 오류가 발생했으며 작업을 수행하려면 수퍼 유저가되어야한다고 주장합니다. MYSQL에 날짜 스탬프 필드 유형이 없다는 것을 믿을 수 없습니다. 그것은 보편적으로 필요합니다. –

0

일반적인 오류가 난 그냥 또한 문서에 CURRENT_TIMESTAMP를 사용할 수있는 예외는 당신 http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

The DEFAULT value clause in a data type specification indicates a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE. The exception is that you can specify CURRENT_TIMESTAMP as the default for a TIMESTAMP column. See Section 11.1.5.5, “Automatic Initialization and Updating for TIMESTAMP”.

에서 문서를 던져.

관련 문제