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

解决方案 »

  1.   

    建表:create table dt1
    (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
      

  2.   

    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
    */
      

  3.   

    insert tb(col) values('2005-7-10')
      

  4.   

    看出區別沒?
    插入時間的時候,在前後必須加上單引號。
    Insert TEST Select 2, '2005-7-10'
      

  5.   

    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.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
      

  6.   

    如果沒有加上單引號,是這麼計算的,
    首先2005-7-10 = 1988
    然後在日期 '1900-01-01' 的基礎上,加上1988天,就會得到1905-06-12 00:00:00.000Select DateAdd(dd, 1988, '1900-01-01')
      

  7.   


    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)