各位好,我近期在用SQL Server 2000做毕业设计,但遇到这样一个问题:
就是我把日期2005-7-10插入到数据类型为datetime的列当中后,查询该值时为1905-06-12 00:00:00.000,请问这是怎么回事?怎样才能得到正确的日期阿?谢谢!
就是我把日期2005-7-10插入到数据类型为datetime的列当中后,查询该值时为1905-06-12 00:00:00.000,请问这是怎么回事?怎样才能得到正确的日期阿?谢谢!
(a int identity not null primary key,
b datetime not null)
插入:insert into dt1(b) values(2005-7-10)
查询:select * from dt1
结果:1 1905-06-12 00:00:00.000
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 TEST Select 2, '2005-7-10'
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.000insert 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
首先2005-7-10 = 1988
然後在日期 '1900-01-01' 的基礎上,加上1988天,就會得到1905-06-12 00:00:00.000Select DateAdd(dd, 1988, '1900-01-01')
CREATE TABLE INSERTDATATIME
(
ITME_ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
DTIME DATETIME NOT NULL
)
INSERT INTO INSERTDATATIME VALUES(GETDATE())INSERT INTO INSERTDATATIME VALUES('2008-08-08')
INSERT INTO INSERTDATATIME VALUES('2008/08/08')
INSERT INTO INSERTDATATIME VALUES(2008/08/08)