SimpleDateFormat s1 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分");
start = new java.sql.Date(s2.parse(s2.format(s1.parse(t.getStart()))).getTime());
pstmt1.setDate(2, start);像这样,往Sybase库中的一个datetime字段插入数据
pstmt1是一个PreparedStatement,start是一个java.sql.Date()类型的,t.getStart()是传过来的参数可是插入库的时候,只有年月日,没有时分秒,这是怎么回事啊?怎么才能把时间插入全?

解决方案 »

  1.   

    用 Timestamp 而不是 Date 类型。
      

  2.   

    你数据库里的时间类型为要timestamp
    你是用 mysql的吧
      

  3.   

    我用的是Sybase
    Timestamp 怎么用,能说明白点吗?给个例子啊大侠们~~
      

  4.   

    oracle中的类型:
         
         日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒
    主要的日期时间类型有:
           DATE - 存储日期和时间部分,精确到整个的秒
           TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位
    sybase中的类型    timestamp:很特别,不能转化成日期,时间    datetime:8字节,可以表示到期9999年    smalldatetime:
      

  5.   

    Sybase数据库中的timestamp为用户定义数据类型,它实际为varbinary(8)类型,但很多工程师把它当作date或time类型,这是错误的。其实在Sybase数据库中每一个数据库都会有一个全局timestamp,它被存放在dbtable内存结构中,它是一个顺序号,用于跟踪数据库中数据页的修改情况,主要被系统使用进行自身维护工作。用户不可以直接修改处理这种数据类型的数据,但使用DB-Library编程可以处理,特殊用户一般使用该数据类型来代替identity类型数据,需要注意的是,这个值只可以增大,不可以减小。
      

  6.   

    Sybase不懂,这个是网上找的,你可以看看你的数据库里能不能插入时分秒,然后就知道到底是怎么回事了显示时间是你自己安装时定义的,我的sybase时间格式是:   
      NOV   30   1997   3:29AM   
      你可以用select   getdate()查询   
      或者用convert()转换   SELECT   CONVERT(VARCHAR(30),DATE,num)   
      num设置如下:   
            0                                   Default                       mon   dd   yyyy   hh:miAM   
            1                                   USA                               mm/dd/yy   
            2                                   ANSI                             yy.mm.dd   
            3                                   British/French         dd/mm/yy   
            4                                   German                         dd.mm.yy   
            5                                   Italian                       dd-mm-yy   
            6                                   -                                   dd   mon   yy   
            7                                   -                                   mon   dd,yy   
            8                                   -                                   hh:mi:ss   
            9                                         Default   +   milliseconds--mon   dd   yyyy   hh:mi:ss:mmmAM(or   )   
            10                                 USA                             mm-dd-yy   
            11                                 JAPAN                         yy/mm/dd   
            12                                 ISO                             yymmdd   
            13                                 Europe                       Default   +   milliseconds--dd   mon   yyyy   
                                                                                    hh:mi:ss:mmm(24h)   
            14                                   -                                 hh:mi:ss:mmm(24h)   
      

  7.   

    给LZ找了一个例子
     
      timestamp  
      timestamp   这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp   一般用作给表行加版本戳的机制。存储大小为   8   字节。  
       
      注释  
      Transact-SQL   timestamp   数据类型与在   SQL-92   标准中定义的   timestamp   数据类型不同。SQL-92   timestamp   数据类型等价于   Transact-SQL   datetime   数据类型。    
       
      Microsoft®   SQL   Server™   将来的版本可能会修改   Transact-SQL   timestamp   数据类型的行为,使它与在标准中定义的行为一致。到那时,当前的   timestamp   数据类型将用   rowversion   数据类型替换。  
       
      Microsoft®   SQL   Server™   2000   引入了   timestamp   数据类型的   rowversion   同义词。在   DDL   语句中尽可能使用   rowversion   而不使用   timestamp。rowversion   受数据类型同义词行为的制约。有关更多信息,请参见数据类型同义词。  
       
      在   CREATE   TABLE   或   ALTER   TABLE   语句中,不必为   timestamp   数据类型提供列名:  
       
      CREATE   TABLE   ExampleTable   (PriKey   int   PRIMARY   KEY,   timestamp)  
       
      如果没有提供列名,SQL   Server   将生成   timestamp   的列名。rowversion   数据类型同义词不具有这样的行为。指定   rowversion   时必须提供列名。  
       
      一个表只能有一个   timestamp   列。每次插入或更新包含   timestamp   列的行时,timestamp   列中的值均会更新。这一属性使   timestamp   列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改   timestamp   值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。  
       
      不可为空的   timestamp   列在语义上等价于   binary(8)   列。可为空的   timestamp   列在语义上等价于   varbinary(8)   列。  
       
       
      请参见  
       
      ALTER   TABLE  
       
      CAST   和   CONVERT  
       
      CREATE   TABLE  
       
      数据类型转换  
       
      数据类型  
       
      DECLARE   @local_variable  
       
      DELETE  
       
      INSERT  
       
      SET   @local_variable  
       
      UPDATE