你先: insert into 新表 select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; SourceDB=F:\projects\交通局项目\car_dbf\; SourceType=DBF', 'select cz_key,cl_key,gc_key,jk_key,da_03,da_04,da_05 from [model_da.DBF]')你看看新表里的da_03,da_04,da_05 日期格式就知道了。
TO:XiaoZhengGe(㊣小政哥㊣·www.yueyan.com·㊣小政哥㊣) 我用这个方法不能成功,就是用: select into 新表 from ( select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; SourceDB=F:\projects\交通局项目\car_dbf\; SourceType=DBF', 'select cz_key,cl_key,gc_key,jk_key,da_03,da_04,da_05 from [model_da.DBF]')) 也不行
测试: select * into #dd from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; SourceDB=F:\projects\交通局项目\car_dbf\; SourceType=DBF', 'select cz_key,cl_key,gc_key,jk_key,da_03,da_04,da_05 from [model_da.DBF]'))select * from #dd drop table #dd
请问SUBS(DTOC(da_03),7,4))+'-'+SUBS(DTOC(da_03),3,2)+'-'+SUBS(DTOC(da_03),1,2)
转换在select语句里行吗?
insert into 新表
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=F:\projects\交通局项目\car_dbf\;
SourceType=DBF',
'select cz_key,cl_key,gc_key,jk_key,da_03,da_04,da_05 from [model_da.DBF]')你看看新表里的da_03,da_04,da_05 日期格式就知道了。
我用这个方法不能成功,就是用:
select into 新表 from (
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=F:\projects\交通局项目\car_dbf\;
SourceType=DBF',
'select cz_key,cl_key,gc_key,jk_key,da_03,da_04,da_05 from [model_da.DBF]'))
也不行
select * into #dd from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=F:\projects\交通局项目\car_dbf\;
SourceType=DBF',
'select cz_key,cl_key,gc_key,jk_key,da_03,da_04,da_05 from [model_da.DBF]'))select * from #dd
drop table #dd
服务器: 消息 8114,级别 16,状态 10,行 8
将数据类型 DBTYPE_DBDATE 转换为 datetime 时出错。
序号 字段名称 类型 宽度 小数点位数 索引 Collate
1 CZ_KEY Numeric 8 Asc Machine
2 CL_KEY Numeric 8 Asc Machine
3 GC_KEY Numeric 8 Asc Machine
4 JK_KEY Numeric 8 Asc Machine
5 DA_03 Date 8 Asc Machine
6 DA_04 Date 8 Asc Machine
7 DA_05 Numeric 3 Asc Machine
应该怎么写?
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=F:\projects\交通局项目\car_dbf\;
SourceType=DBF',
'select cz_key,cl_key,gc_key,jk_key,cfrom,SUBS(DTOC(da_03),1,8) [model_da.DBF]'))select * from #dd
drop table #dd
将日期转换成字符型先试试:SUBS(DTOC(da_03),1,8) 看看结果?
insert into #a
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=F:\projects\交通局项目\car_dbf\;
SourceType=DBF',
现在先插到临时表里就有没有,提示:
服务器: 消息 8114,级别 16,状态 10,行 1
将数据类型 DBTYPE_DBDATE 转换为 datetime 时出错。
我看在DA_04里是这么存的:07/08/2004,应该在日期中怎么设置日期的格式呢?
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
再请教XiaoZhengGe(㊣小政哥㊣·www.yueyan.com·㊣小政哥㊣) :
在foxpro里查询当日的用什么语句,where da_04=? 应该怎么写?
我知道在sqlserver或oracle里比较好办,象在sqlserver里用datediff和getdate函数就可以,不知道foxpro里应该怎么办?
replace all da_04 with 1900.01.01 where da_04<1900.01.01
这只是一个思路,上面的语句肯定有错,我没有用过foxpro只是看过。
谁能告诉我呀?急!
foxpro中如果Model_da.da_04是空的就用date()当前时间来代替