/*===================  导入/导出 Excel 的基本方法 ===================*/从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:/*===================================================================*/
--如果接受数据导入的表已经存在
insert into 表 select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)--如果导入数据并生成表
select * into 表 from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
/*===================================================================*/
--从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
select * from 表
--如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:
--导出表的情况
EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 out "c:\test.xls" /c /S"服务器名" /U"用户名" -P"密码"'--导出查询的情况
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout "c:\test.xls" /c /S"服务器名" /U"用户名" -P"密码"'
/*--说明:
c:\test.xls  为导入/导出的Excel文件名.要求文件在SQL服务器上,或者SQL服务器可以访问的共享目录上
sheet1$      为Excel文件的工作表名,一般要加上$才能正常使用.
--*/

解决方案 »

  1.   

    --try
    select ActivityID,ActivityType,ActivityStartDate,ActivityEndDate,[Status],ProcessID  
    FROM [ACTIVITY_HISTORY$]  
    where convert(varchar(19),ActivityEndDate,120) > '2008-11-24 11:39:18'
      

  2.   

    to HEROWANG:不行,报错了:表达式中 'convert' 函数未定义。
      

  3.   

    to HEROWANG: 不好意思,写错了。这个msg是给wufeng4552的。似乎用oledb连接的话,不支持convert函数。需求是要支持db、excel、csv、text的数据源。虽然excel导入数据库后也可以操作,不过最好
    还是可以直接使用excel文件。
      

  4.   


    to wufeng4552:不行,报错了:表达式中 'convert' 函数未定义。
      

  5.   


    oledb链接怎么用? 我没用过,请教一下~
      

  6.   

    --try
    select ActivityID,ActivityType,ActivityStartDate,ActivityEndDate,[Status],ProcessID  
    FROM [ACTIVITY_HISTORY$]  
    whereActivityEndDate > CAST('2008-11-24 11:39:18' AS DATETIME)
      

  7.   

    先不说这个错误的原因,为什么你要在字段上用函数呢?你这样写是比较字符串,不是比较日期,难道不可以这样:SQL codeselect ActivityID,ActivityType,ActivityStartDate,ActivityEndDate,[Status],ProcessID  
    FROM [ACTIVITY_HISTORY$]  
    where ActivityEndDate) > convert(datetime,'2008-11-24 11:39:18',120) 
      

  8.   

    --這種我測試過,沒問題
    --還有就是你訪問是Excel,你上面貌似訪問的是表,你連接Excel有沒有寫對~~
      

  9.   


    少了空格,浏览器与csdn的代码有兼容问题,经常发就有问题。
      

  10.   


    报错了:IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。
      

  11.   

    还是那个错:表达式中 'convert' 函数未定义。
      

  12.   

    链接字符串
    Provider=Microsoft.ACE.OleDb.12.0;Data Source=H:\Work\Projects\POC\Code\POC\WebSite\App_Data\ACTIVITY_HISTORY.xlsx;Extended Properties='Excel 12.0;HDR=Yes;IMEX=2;'