Hỏi kiểu dữ liệu ngày giờ trong SQL 2000

  • Thread starter Thread starter REALM
  • Ngày gửi Ngày gửi

REALM

Legend of Zelda
Tham gia ngày
30/6/03
Bài viết
970
Reaction score
1
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 đó
 
Chỉnh sửa cuối:
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.
 
Back
Top