如果是先把TEST.CSV入库,系统会自动把所有列都变成varchar格式。成功。
再修改表结构,再把第一列的Varchar改成DATETIME格式,保存。也成功,并且SQL已经自动把
01/09/2004 17:15:00.031
转换成:
2004-1-9 17:15:00.031

解决方案 »

  1.   

    下面是我的测试:
    1: 把如下内容存到c:\abc.txt
      "01/29/2004 19:50:41.111","aaa"
      "01/29/2004 19:53:42.211","bbb"
    2: 建立测试环境
    use master
    go
    if object_id('test') is not null
    drop table test
    go
    create table test(a datetime,b char(10))
    3: 导入数据,用SQL语句导入
       xp_cmdshell 'bcp master..test in c:\abc.txt -c -t ,'
    4: 查看结果
    select * from test
    /*
    a                                                      b          
    ------------------------------------------------------ ---------- 
    2004-01-29 19:50:41.110                                "aaa"     
    2004-01-29 19:53:42.210                                "bbb"     (所影响的行数为 2 行)
    */
      

  2.   

    这个的确是个好方法!//agree
    还想请教txlicenhe(马可)兄:为什么用DTS不行呢,因为我看SQL的帮助,都是用CDATE(.....)的方法的。真的很纳闷
      

  3.   

    FormatDateTime(LEFT(DTSSource("Col001"),Instr(1,DTSSource("Col001"),".")-1), 0) 
    这样就可以了,主要是vb的转换函数的问题
      

  4.   

    1:Convert cast是SQL的函数,在vb script中怎么能用呢?
    2:CDATE只能转换不带毫秒的日期数据,01/09/2004 18:15:00是可以的,而01/09/2004 18:15:00.031是不行的!!
    3:kseven(没风格)将数据中的毫秒去掉了!!
    4:如果要保存毫秒得想其他办法了。