2012-12-18 38 views
7

Bir sorum var: SQL sunucusunda varsayılan datetime boş olarak bir tablo nasıl oluşturabilirim, 1900-01-01 00:00:00.000 alıyorum.Varsayılan olarak sql datetime sütununa null/boş değer ekleme

takılı hiçbir değer yoksa Yani, varsayılan değer null boş olmalıdır ...

Teşekkür

+5

'Hiçbir değer girilmediyse, varsayılan değer boş, boş olmalıdır 'Öyleyse neden NULL' yapamazsınız ve 'NULL' yazınız? –

+0

İZİN VERİLEN NULL DEĞİŞKENLERİNİ BULUNUR .. –

+1

Bir örnek INSERT ifadesini gösterebilir misiniz? – zimdanen

cevap

17

, Tablo tanımında

boş boş ULD, NOT NULL tanımlayan olmamak bu datetime kolon boş imkan sağlar: olsa Boş değişkenler izin

... 
DateTimeColumn DateTime, 
... 

.

... 
DateTimeColumn DateTime DEFAULT NULL, 
... 

Sonra INSERT açıklamada tamamen göz ardı edebilirsiniz: Eğer DEFAULT constaints yararlanabilir,

INSERT INTO Table(name, datetimeColumn, ...) 
VALUES('foo bar', NULL, ..); 

Veya:

Sonra, sadece bu sütunda NULL eklemek ve NULL değerine eklenir:

+0

Sorun, giriş boş ise, o zaman '1900-0-0-0 etc' ama NULL koymalı ve tüm bu koşulları koymak zorunda olmamalıdır, o zaman –

+0

@OziOz Benim düzenleme bakın. 'VARSAYILMIŞ NULL' yapın ve ekleme listesinde igonre edin, 'DEFAULT NULL' kullanmadıysanız başka bilge yapın, null yapsın ve bu sütuna sıfır ekleyin –

+0

Üzgünüm Mahmud seni çok iyi anlamıyorum :( Bunu nereye koyarım? Bunun için Yeni Sorgu oluşturmalıyım? DateTimeColumn DateTime DEFAULT NULL, –

0
  1. boş dize eklemek yok your_field DATETIME NULL DEFAULT NULL şöyle tanımlıyoruz, insert hiç bir değer girilmez, varsayılan değer sho varsa bir BOŞ INSERT INTO x(your_field)VALUES(NULL)
0

Ozi, olarak yeni bir datetime nesnesi oluşturduğunuzda datetime foo = new datetime(); foo bir parametreli sorgu binada zaman DateTime.MaxValue'dan() ile inşa edilmiştir, girdiğiniz değerleri (DateTime.MaxValue'dan eşit olup olmadığını bir yan düşünce -Sadece

) görmek için kontrol edebilir. İşlerin var gibi görünüyor.

0

Bu sabah aynı sorunu yaşıyordum. DATE veya DATETIME alanı için boş bir değerin eklenemeyeceği anlaşılıyor. Önce boş bir değer (mydate = "") olup olmadığını kontrol etmeliyim ve eğer boşsa, mydate = "NULL" ayarını yerleştirmeden önce boş bıraktım.

DATE ve DATETIME alanları, VARCHAR alanları ile aynı şekilde davranmaz.

+1

_ "DATE ​​ve DATETIME alanları VARCHAR ile aynı şekilde davranmıyor" _ - boş -null string ('" "') geçerli bir dizgidir, ancak geçerli, boş, boş olmayan bir tarih oluşturmak mümkün değildir. – CodeCaster

İlgili konular