如何使用insert into 语句插入一个日期型的数据?
假设表名为 tablename1,字段名为 datefield1,要插入一个日期2003-09-08;
请帮忙!

解决方案 »

  1.   

    insert into tablename1(datefield1) Value('+2003-09-08+')
      

  2.   

    还是不行,我现在用的是Access数据库,另外还想在Oracle中用.
      

  3.   

    试一下insert into tablename1(datefield1) Value(''+'2003-09-08'+'')
      

  4.   

    我只在sql中用过。insert into tablename(datefieldl) convert(datetime(8),'2003.09.08',120)
      

  5.   

    对于Oracle:insert into table_name(field_date) values ( to_date('2002-09-01','YYYY-MM-DD')
    即保存时将相应的日期字符串用转换函数转
      

  6.   

    insert into tablename1(datefield1) Value(#2003-09-08#)
      

  7.   

    insert into tablename1(datefield1) Value('''+'2003-09-08'+'''')

    insert into tablename1(datefield1) Value("'+'2003-09-08'+'"')
      

  8.   

    query1.sql.text:='insert into table (datefield) values (:pdate)';
    query1.parambyname('pdate').asdate:=strtodate('2003-9-8');
      

  9.   

    Query1.sql.add('insert into 表名 values(:myDate)');
    Query1.paramByname('myDate').asDateTime:=strToDate('2003-9-8');
    Query1.execsql;如果是ADOQuery
    ADOQuery1.paramiters.paramByName('myDate').asDateTime:=strToDate('2003-9-8');
      

  10.   

    up 这样可以通过设置ADO ODBC 来适用于各种数据库
      

  11.   

    oracle_lover(数据库情人)的方法是我最先想到的,但是不行。
     yiyizq0260(yiyizq) 的方法在oracle中是可行的,但各位提出的对access的方法都不行。
      

  12.   

    似乎Values后面不能跟参数,我试了不行。大家可以实际试试。
      

  13.   

    'insert into tablename1(datefield1) Value(#'+2003-09-08+'#)'
    ============================
    @* .☆ / */ . / * . ☆/ *。
       ◢◣。       ◢◣。
      ◢★◣。     ◢★◣。
     ◢■■◣。   ◢■■◣。
    ◢■■■◣。 ◢■■■◣。
    ︸︸||︸︸ !!︸︸||︸︸
    愿您有快乐的每一天 ^_^!!
      

  14.   

    insert into tablename(fieldname)
    values('2110-3-8')
    正确吧,我就是这么坐的
      

  15.   

    insert into tablename1(datefield1) Value('2003-09-08')
    标准语句
      

  16.   

    对于不同的数据库,支持的SQL不同,经过测试,能适用于Access的就不能用于Oracle,反之也是这样.最好是通过参数传进去,但却不能成功,大家还有别的办法吗?
      

  17.   

    insert into tablename1(datefield1) Value(#2003-09-08#),我觉得应该是这样
      

  18.   

    to Cipherliu (孤鹰) :
       以上几位朋友使用参数的办法都可以。在ACEESS里面,DATETIME是一个非常奇怪的类型。同样的SQL语句即使在ORACLE(甚至SQLSERVER)里面执行的很正常,但ACCESS就不行。这可能于MICOR的ACCESS日期类型存储方法有关。
      

  19.   

    insert into tablename1(datefield1) Values('2003-09-08')
    如果不行的话,有可能是你的表中其它的字段不能为空。
      

  20.   

    承上:
       你可以先测试一下,先在QUERY1的SQL属性里填上
        Query1.sql.add('insert into 表名 values(:myDate)');
       然后打开PARAMETERS属性,会发现MYDATE,在MYDATE的VALUE里面写上
       2003-09-08,然后在一个按扭的CLICK事件里执行
        QUERY1。EXEC
      行的话,就说明你写的使用参数的地方有别的语法错误。
      

  21.   

    to Cipherliu (孤鹰) :
       听我的,就用参数传递方法。多试几遍保证行!
       我以前也碰到过这样的问题!
      

  22.   

    insert into table_name(field_date) values ( to_date('2002-09-17','YYYY-MM-DD')----Oracle DB
      

  23.   

    没有用过orical但是在access中与ms sql server的时间日期的确不一样
    如果在access中不加##的时间不会报错但是会存错,在sql server中就不会了
    我想还是用参数传最好了,而且尽量用基本的数据类型,如果你要用于不同的数据库的话
      

  24.   

    哈哈,我知道
    在oracle中插入日期型数据是这样的://
    //
    //
    INSERT INTO TABLE1(DATA1)
    VALUES('01-5月-2000');或者
    insert into table1(DATA1) values ( to_date('2001-04-02','YYYY-MM-DD')
      

  25.   

    想当初我为了在oracle表中输入日期,折腾了好几天,偶尔碰出来的,也没有找到相关介绍,呵呵
      

  26.   

    使用ADOConnection1和adotable1控件,ADOConnection1的连接到Access数据库,adotable1的Connection为ADOConnection1,TableName为对应的表。
       with adotable1 do
       begin
          Append;
          FieldByName('dat').Value:=strtodate('2003-03-01');
          UpdateRecord;
          Next;
       end;
    以上在Windows XP,Delphi 7,Access XP下调试通过。