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

Sql Server 2000中插入日期型数据不正确
各位好,我近期在用SQL   Server   2000做毕业设计,但遇到这样一个问题:
就是我把日期2005-7-10插入到数据类型为datetime的列当中后,查询该值时为1905-06-12   00:00:00.000,请问这是怎么回事?怎样才能得到正确的日期阿?谢谢!

------解决方案--------------------
Create Table TEST(ID Int, TestDate DateTime)
Insert TEST Select 1, 2005-7-10
Union All Select 2, '2005-7-10 '
GO
Select * From TEST
GO
Drop Table TEST
--Result
/*
1 1905-06-12 00:00:00.000
2 2005-07-10 00:00:00.000
*/

------解决方案--------------------
insert tb(col) values( '2005-7-10 ')
------解决方案--------------------
看出區別沒?
插入時間的時候,在前後必須加上單引號。
Insert TEST Select 2, '2005-7-10 '
------解决方案--------------------
use northwind
insert into orders (orderdate) values ( '2005-7-10 ')
select top 1 * from orders order by OrderID desc


用上面的看一下 ,没问题吧

知道你的问题在哪啊,你肯定是插入的时候没加引号,系统对不加引号的当做数字来处理
2005 减去 7 减去 10 也就是1978,
整数 1978 转换成 datetime类型就是2005-07-10 00:00:00.000

insert into orders (orderdate) values (2005-7-10)

select Convert(datetime,1978)
明白了吧
也可以 先转换成 datatime 再插入
use northwind
insert into orders (orderdate) values (Convert(datetime, '2005-7-10 '))
select top 1 * from orders order by OrderID desc