2012-12-18 33 views
7

Tôi có câu hỏi: Làm cách nào để tạo bảng trong máy chủ SQL với ngày giờ mặc định là trống, không phải là 1900-01-01 00:00:00.000 mà tôi nhận được.Chèn giá trị rỗng/trống vào cột ngày giờ sql theo mặc định

Ý tôi là, nếu không có giá trị chèn, giá trị mặc định sẽ là null, trống ...

Cảm ơn

+5

'nếu không có giá trị nào được chèn vào, giá trị mặc định phải là rỗng, trống' Vậy tại sao không làm cho nó dễ vỡ và chèn 'NULL'? –

+0

TÔI ĐÃ ĐƯỢC CHO PHÉP NULL THAY ĐỔI .. –

+1

Bạn có thể trình bày câu lệnh 'INSERT' mẫu không? – zimdanen

Trả lời

17

nếu không có giá trị được chèn vào, giá trị mặc định sho ULD được null, trống

Trong định nghĩa bảng, hãy datetime cột này cho phép null, được không xác định NOT NULL:

... 
DateTimeColumn DateTime, 
... 

TÔI ĐÃ ĐƯỢC BIẾN NULL mặc dù.

Sau đó, chỉ cần chèn NULL trong cột này:

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

Hoặc, bạn có thể tận dụng các DEFAULT constaints:

... 
DateTimeColumn DateTime DEFAULT NULL, 
... 

Sau đó, bạn có thể bỏ qua nó hoàn toàn vào báo cáo kết INSERT và nó sẽ được chèn withe các NULL giá trị:

INSERT INTO Table(name, ...) 
VALUES('foo bar', ..); 
+0

Vấn đề là, nếu đầu vào là trống rỗng, sau đó nó không nên đặt '1900-0-0-0 etc' nhưng NULL, và tôi không cần phải đặt tất cả những điều kiện sau đó –

+0

@OziOz Xem chỉnh sửa của tôi. Làm cho nó 'DEFAULT NULL' và igonre nó trong danh sách chèn, khôn ngoan nếu bạn không sử dụng' DEFAULT NULL', làm cho nó nullable và chèn null trong cột đó –

+0

Tôi xin lỗi Mahmud tôi không hiểu bạn tốt :( Tôi đặt cái này ở đâu? Tôi có nên tạo Truy vấn mới cho điều này không? DateTimeColumn DateTime DEFAULT NULL, –

0
  1. định nghĩa nó như your_field DATETIME NULL DEFAULT NULL
  2. không chèn một chuỗi trống, chèn a NULL INSERT INTO x(your_field)VALUES(NULL)
0

Ozi, khi bạn tạo đối tượng ngày giờ mới như trong datetime foo = new datetime(); foo được xây dựng với thời gian datetime.minvalue() khi tạo truy vấn được tham số hóa, bạn có thể kiểm tra xem các giá trị đã nhập có bằng datetime.minvalue()

-Chỉ cần một ý nghĩ phụ. có vẻ như bạn đang làm việc.

0

Tôi gặp vấn đề tương tự sáng nay. Dường như đối với trường DATE hoặc DATETIME, không thể chèn giá trị trống. Tôi nhận được xung quanh này bằng cách đầu tiên kiểm tra một giá trị sản phẩm nào (mydate = "") và nếu nó đã được thiết lập trống mydate = "NULL" trước khi chèn.

Các trường DATE và DATETIME không hoạt động giống như trường VARCHAR.

+1

_ "Các trường DATE và DATETIME không hoạt động giống như cách VARCHAR" _ - đó là vì trống, không -null string ('" "') là một chuỗi hợp lệ, nhưng nó không thể xây dựng một ngày hợp lệ, trống rỗng, không null. – CodeCaster

Các vấn đề liên quan