Mình đang nhức đầu với kiểu dữ liệu này, insert bằng tay hoài ko được, bạn nào biết chỉ mình với nha. vd Mã: giả sử có 1 cái bảng sau create table sinhvien ( msv varchar(5) not null, ... ngaysinh datatime null, constraint pk_sinhvien primary key(msv) ) với như trên mình yêu cầu là nhập vô bảng đó dữ liệu dạng này 1234 .... 16/02/1986 vậy mình phải dùng câu lênh insert ra sau, để nhập vô cho đúng
sai ở đây : ngaysinh datatime null, sửa thành: ngaysinh datetime khi insert bằng câu lệnh sql thì datetime là chuỗi 'tháng/ngày/năm'
thấy sai gì đâu mà phải bỏ null, với lại gõ ngày/thang/nam vô nó còn phần sau là 00:00:00 ---> cần bỏ cái này nè
bạn có hiểu null ở đó có ý nghĩa gì ko vậy ??? kiểu dữ liệu datetime khi nhập vào thì nó tự thêm phần giờ/phút/giây vào, mình chỉ có thể format định dạng khi truy vấn dữ liệu để xem thôi. nghĩa là trong câu lệnh insert ko cần có phần đó, nhưng sau khi vào database nó tự thêm vào. với lại thấy bạn ghi là datatime nữa đó
tại vì kiểu của ngày sinh là datetime nên khi bạn insert vào db nó sẽ tự thêm 00:00:00 nếu bạn chỉ insert date nếu muốn bỏ phần time thì: DECLARE @ngaysinh VARCHAR(8) = '' DECLARE @ns DATETIME SELECT @ns = ngaysinh FROM sinhvien WHERE msv = #msv SET @ngaysinh = CONVERT(VARCHAR(8), @ns, 112) bạn thử dùng varchar(8) xem, khi insert thi dung ISDATE() để validate, khi dùng đến thì convert tùy theo mục đích. trong thực tế cách này vẫn thường đc dùng.