日期:2014-05-18  浏览次数:20587 次

关于sql severe中我输入 datetime 为什么不让我用‘’
我是初学者
例如
create table pp
(
time datetime
)


insert into pp values('2000')

就可以 而我用
insert into pp values('2000-0-1') 就不行啊


就提示这个 试了半天了 就不行 谢谢了~~~~~~~~

服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。

------解决方案--------------------
因为没有0月这种概念
------解决方案--------------------
sql server会检查输入日期的合法性.
------解决方案--------------------
探讨

sql server会检查输入日期的合法性.

------解决方案--------------------
SQL code

--2000也不是表示2000年
declare @p datetime set @p=2000
select @p
/*
1905-06-24 00:00:00.000
*/

------解决方案--------------------
因为没有 0 这个月。也就是说输入的0 月 校验不合法,所以被拒绝
------解决方案--------------------
是的。格式对了,数据也得合法,这是大前提