如果是先把TEST.CSV入库,系统会自动把所有列都变成varchar格式。成功。
再修改表结构,再把第一列的Varchar改成DATETIME格式,保存。也成功,并且SQL已经自动把
01/09/2004 17:15:00.031
转换成:
2004-1-9 17:15:00.031
再修改表结构,再把第一列的Varchar改成DATETIME格式,保存。也成功,并且SQL已经自动把
01/09/2004 17:15:00.031
转换成:
2004-1-9 17:15:00.031
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 行)
*/
还想请教txlicenhe(马可)兄:为什么用DTS不行呢,因为我看SQL的帮助,都是用CDATE(.....)的方法的。真的很纳闷
这样就可以了,主要是vb的转换函数的问题
2:CDATE只能转换不带毫秒的日期数据,01/09/2004 18:15:00是可以的,而01/09/2004 18:15:00.031是不行的!!
3:kseven(没风格)将数据中的毫秒去掉了!!
4:如果要保存毫秒得想其他办法了。