2009-07-16 9 views
15

एक mysql दिनांक प्रकार फ़ील्ड (NULL = yes) में एक पूर्ण या खाली मान कैसे सम्मिलित करें।mysql दिनांक प्रकार फ़ील्ड में खाली मान कैसे डालें?

अगर मैं एक खाली मूल्य इसे सम्मिलित करता है 0000-00-00 सम्मिलित करने की कोशिश लेकिन मैं इसे खाली या शून्य रखना चाहते हैं।

सहायता के लिए धन्यवाद।

अद्यतन

कृपया देखें कि मैं

`payment_due_on` date DEFAULT NULL, 

ठीक OKies

मुझे मिल गया है अब काम कर रहा

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'])." ...." 

चीयर्स

शून्य के रूप में डिफ़ॉल्ट मान निर्धारित किया है
+0

आप वास्तव में एक खाली स्ट्रिंग या वास्तव में शून्य डालने रहे हैं? (या कुछ भी निर्दिष्ट नहीं) शायद खाली स्ट्रिंग का अर्थ 0000-00-00 – HerdplattenToni

उत्तर

18

अगर ऐसा हो रहा है, क्योंकि स्तंभ NOT NULL के साथ या एक default '0000-00-00' के साथ परिभाषित किया गया है। आपको NULL एस की अनुमति देने के लिए कॉलम परिभाषा को बदलने की आवश्यकता है और इसमें कोई डिफ़ॉल्ट नहीं है।

आपका डालने शून्य को निर्दिष्ट किया जाना चाहिए, साथ ही, नहीं '', कि यदि आप "रिक्त मान" द्वारा क्या मतलब है।

+0

के रूप में किया गया है मैंने उल्लेख किया है कि मैंने NULL = yes और डिफ़ॉल्ट मान को न्यूल के रूप में भी सेट किया है। – TigerTiger

+1

और आपके पास आपके बयान में न्यूल 'न्यूल' नहीं है? "इंसर्ट ... मूल्य (कुल, 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

ओफ़्फ़ .. इस अशक्त बात थोड़ा के साथ संघर्ष कर रहा था।

मैं एक PHP स्क्रिप्ट है कि प्रतियां, एक डेटाबेस एक से स्वरूपों और भंडार डेटा डेटाबेस बी को वहाँ शून्य मूल्यों के साथ डेटाबेस एक में एक तिथि क्षेत्र था। लेकिन जब मैंने इसकी प्रतिलिपि बनाई तो यह मेरे डेटाबेस बी 0012-000000 में बन गया।

अंततः यह पता चला क्योंकि यह एकल (जैसे 'न्यूल') के आसपास एकल उद्धरण डाल रहा था।

$started_date = mysql_result($databaseA['result'],$i,"start_date"); 

    if (empty($published_at_date)){ 
    $insert_sql .= "NULL, "; 
    } 
    else 
    { 
    $insert_sql .= " '" . mysql_real_escape_string($started_date) ."', "; 
    } 

यह तय किया गया।

संबंधित मुद्दे