我创建了一个表,里面有一个datetime字段
打开表,可以直接加一条记录,sql 2005显示的是2011-04-08 0:00:00
现在想用程序插入一条记录,请问,如果写insert的sql语句?datetime字段的值怎么写?
能不能给一个实际的列子,谢谢

解决方案 »

  1.   

    insert into table (id,time) values (1,'2011-04-08 00:00:00')
      

  2.   

    insert into 表名 列名 values ('2011-01-08')
      

  3.   

    必须要这样写吗,有其他的方法吗?
    datetime类型其实在VC中是double型,能写成double型的数据吗?
      

  4.   

    需要double转换为字符tostring,并且能够转换为时间的,否则转换出错。
      

  5.   

    SQL Server是不是必须要写出字符串的形式?写成double会出错?如果是这样,SQL server的定义感觉有点点怪啊,datetime明明是double
      

  6.   

    --看看吧^^
    CREATE TABLE #temp
    (
    test datetime
    )
    go
    --SQL:
    INSERT #temp
    SELECT 1.1 UNION ALL
    SELECT 1
    GO
    --SQL:
    INSERT #temp
    SELECT '2011-1-1' UNION ALL
    SELECT GETDATE()
    GOSELECT * FROM #temp
    /*
    1900-01-02 02:24:00.000
    1900-01-02 00:00:00.000
    2011-01-01 00:00:00.000
    2011-04-08 01:29:47.673
    */
      

  7.   

    double的优先级高于datetime,datetime的优先级高于字符,所以可以输入字符,数据库会隐式转换为datetime类型,但是不能将double隐式转换为datetime
      

  8.   

    那么可以写成'08-04-2010'吗?国外的月份和日期的位置不一样,SQL Server如何分辨哪个是月,哪个是日?
      

  9.   

    '08-04-2010'这些法,数据库会认识是8月4号,貌似没有那个国家4月8号是这么写的吧,datetime包含了大部分主流的日期写法,你硬要也这样也没办法。