在SQL server中,怎样在插入一条记录时,不让空时间在数据库里变成了1900-01-01 ...

时间:2021-11-02 15:33:51
在SQL server中,怎样在插入一条记录时,不让空时间在数据库里变成了1900-01-01 ...

11 个解决方案

#1


设定一个默认值

#2


这样是不可行的,因为我赋值时可能赋 ""空值.

#3


--insert into 的时候,改变时间格式,convert(varchar(10),时间字段,120)
--或者在插入前的时候,正确定义时间格式数据

#4


create table t(id int identity(1,1),dates datetime,name varchar(10))

insert into t(name) select null

select * from T

#5


你为什么要赋""呢?
赋null不行吗?

#6


就是哈!你用null就是了

#7


只要datetime列允许为空,且在insert操作时不对该列赋值或直接插入null即可。

#8


設置Default Value 為GetDate()

#9


insert操作时不对该列赋值或直接插入null即可

#10


create table tb
(
id int null,
name varchar(50) null,
times datetime null default('1900-1-1')
)

insert into tb (id,name)values(1,'a')

select * from tb
drop table tb
--测试结果
/*
(所影响的行数为 1 行)

id          name                                               times                                                  
----------- -------------------------------------------------- ------------------------------------------------------ 
1           a                                                  1900-01-01 00:00:00.000

(所影响的行数为 1 行)
*/

#11


你的数据库表设计时如果设置可以为null,则它就不会变为'1900-1-01'
如果设计时不可以为null,它就会默认为: '1900-01-01'

#1


设定一个默认值

#2


这样是不可行的,因为我赋值时可能赋 ""空值.

#3


--insert into 的时候,改变时间格式,convert(varchar(10),时间字段,120)
--或者在插入前的时候,正确定义时间格式数据

#4


create table t(id int identity(1,1),dates datetime,name varchar(10))

insert into t(name) select null

select * from T

#5


你为什么要赋""呢?
赋null不行吗?

#6


就是哈!你用null就是了

#7


只要datetime列允许为空,且在insert操作时不对该列赋值或直接插入null即可。

#8


設置Default Value 為GetDate()

#9


insert操作时不对该列赋值或直接插入null即可

#10


create table tb
(
id int null,
name varchar(50) null,
times datetime null default('1900-1-1')
)

insert into tb (id,name)values(1,'a')

select * from tb
drop table tb
--测试结果
/*
(所影响的行数为 1 行)

id          name                                               times                                                  
----------- -------------------------------------------------- ------------------------------------------------------ 
1           a                                                  1900-01-01 00:00:00.000

(所影响的行数为 1 行)
*/

#11


你的数据库表设计时如果设置可以为null,则它就不会变为'1900-1-01'
如果设计时不可以为null,它就会默认为: '1900-01-01'