当我在C#中获取数据时,从OPENQUERY返回的日期转换为DATETIME

时间:2014-09-29 08:57:53

标签: c# sql-server

我正在查询IBM DB2链接服务器以获取数据到我的MS Management Studion 2012,因为我对链接服务器上的表的访问权限有限,所以当我执行打开的查询时,我会使用预先编写的查询:

  select TOP 100 *
    from openquery(LinkedServer,
    '
    select 
    someTable.Date AS BIRTHDATE,
    ...

在管理工作室的Result Window我得到了

BIRTHDATE
1969-08-31

这正是我想要展示它的用法。但是,我使用ADO.NET

获取数据
while (reader.Read())
  {
    for (int k = 0; k < columns.Count; k++)
    {
      resultRow.Add(reader[k]);
    }
  }
 reader.Close();

由于某些原因而不是格式正确1969-08-31我得到1969-08-31T00:00:00

我尝试添加此代码:

CONVERT(VARCHAR(26), someTable.Date, 23) AS BIRTHDAY

但我收到了错误 - SQL0204 - CONVERT in *LIBL type *N not found.。因为我第一次在SQL SERVER服务器上使用DB2函数时遇到问题,我想也许我就是不能使用这个函数。然而在Ms Management Studio我得到了正确的格式,因为我想保持一些动态的东西,我不想在以后用ADO.NET获取recrods时使用格式,所以我想知道是否有任何方法保留此格式并阻止ADO.NET添加此T00:00:00

1 个答案:

答案 0 :(得分:1)

请使用convert(varchar(10),someTable.Date,120)函数,如:

convert(varchar(10),someTable.Date,120)

另请参阅:click here