2009-07-16 4 views
15

mysql 날짜 유형 필드에 NULL 값 또는 빈 값을 삽입하는 방법 (NULL = 예).mysql 날짜 유형 필드에 빈 값을 삽입하는 방법은 무엇입니까?

빈 값을 삽입하려고하면 0000-00-00이 삽입되지만 비어 있거나 NULL로 유지하려고합니다.

도움 주셔서 감사합니다.

UPDATE

내가 NULL로 지금

function get_mysqlDate($date, $delimiter='/') { 
    if(check_empty($date)) { 
     return 'NULL'; 
    } 
    list($d, $m, $y) = explode($delimiter, $date); 
    //$datetime = strtotime($date); 
    return "'".date('Y-m-d', mktime(0,0,0,$m, $d, $y))."'"; 
} 




"... SET mydate = ".get_mysqldate($_POST['mydate'])." ...." 

건배

작업

`payment_due_on` date DEFAULT NULL, 

좋아 OKies 내가 가지고

을 기본 값을 설정 한 것을 참조하시기 바랍니다
+0

실제로 빈 문자열을 삽입 하시겠습니까? 아니면 실제로 NULL입니까? (또는 아무것도 지정하지 않음) 빈 문자열이 0000-00-00 – HerdplattenToni

답변

18

열이 NOT NULL 또는 default '0000-00-00'으로 정의 되었기 때문입니다. NULL을 허용하도록 열 정의를 변경하고 기본값이 필요합니다.

"공백 값"을 의미하는 경우 삽입시 NULL도 지정해야합니다 ('').

+0

으로 해석되었을 수도 있습니다. NULL = yes와 NULL을 기본값으로 설정했다고 언급했습니다. – TigerTiger

+1

그리고 성명에서 NULL이 아닌 NULL이 있습니까? "INSERT ... VALUES (NULL, 1, 2)" – VolkerK

0

삽입 할 때 입력란을 생략하면됩니다.

는 테이블이처럼 말 :

CREATE TABLE mytable(
`name` VARCHAR(30) NOT NULL, 
`payment_due_on` date DEFAULT NULL); 

당신이 날짜, 사용하지 않고 무언가를 삽입하려면 :

INSERT INTO mytable (name) VALUES ('name here'); 
2

휴이 ..이 널 (null) 일이 조금 고민했다.

데이터베이스 A에서 데이터베이스 B로 데이터를 복사, 포맷 및 저장하는 PHP 스크립트가 있습니다. 데이터베이스 A에 NULL 값이있는 날짜 필드가있었습니다. 하지만 복사했을 때 데이터베이스 B에서 0000-00-00이되었습니다.

마지막으로 NULL을 (NULL) ('NULL')과 같이 묶었 기 때문입니다.

이 문제가 해결되었습니다.

관련 문제