sql server中我创建表时设了一个字段默认为getdate(),为什么总是1900-01-01,急呀?

2024-10-31 12:45:54
推荐回答(2个)
回答1:

兄弟,原因在于你的这个语句
insert into t_mng_stateinfo values('440000000000000002','')
既然是默认,系统当你插入数据时,会自动获取这个时间,不需要赋空值
在SQL Server2000中,当一个时间值是空就会自动置为1900-01-01 00:00:00.000

插入语句写成这个就可以了
--主键不能重复,所以在这里用了440000000000000003
insert into t_mng_stateinfo(operno_cr) values('440000000000000003')

回答2:

的确很邪门~~~ 用你写的语句测试,的确是无效,但是参照SQL联机丛书的李这个例子却执行正确

CREATE TABLE employees
(
emp_id char(11) NOT NULL,
emp_lname varchar(40) NOT NULL,
emp_fname varchar(20) NOT NULL,
emp_hire_date datetime DEFAULT GETDATE(),
emp_mgr varchar(30)
)