2013-08-31 17 views
0

我在DB2/400表中有一列作为TIMESTAMP类型。.NET中的DB2/400 TIMESTAMP字段操作

我过滤这样的:

select scmach,count(*) from f55br001 where sctrdj >='2013-08-30 00:00:00' group by scmach order by scmach 

在一个简单的ASP.NET网页应用程序,我使用这样的:

var lastUpdate = db.QuerySingle("select max(sccrdj) as LASTUPDATE from PRODDTA.F55BR001 where SCTRDJ >= '" + dateParam + "'"); 
    var maxDate = lastUpdate.LASTUPDATE; 

然后:

<h3> 
    Last update: @maxDate 
</h3> 

在其网页上打印为:

2013-08-31-14.01.09.000000 

我找不到任何方法将它转换为适当的日期时间字段。

的GetType()表示,其字符串时它来自DB和DateTime.Parse不工作或者

编辑:

,我发现使用ParseExact的唯一途径。这是正确的方式吗?

string dateFormat = "yyyy-MM-dd-HH.mm.ss.FFFFFF"; 
    var maxDate = DateTime.ParseExact(lastUpdate.LASTUPDATE,dateFormat, CultureInfo.InvariantCulture); 
+0

'变种的maxDate = DateTime.ParseExact(lastUpdate.LASTUPDATE, “YYYY-MM-DD-HH.mm.ss.FFFFFF”,CultureInfo.InvariantCulture);'是的,它是变换的正确方式。 – Praveen

+0

我相信我的同事刚刚进行并为日期时间的每个部分都做了一个子字符串,并以此方式进行了重新构建。绝对不是优雅,但它的工作。 –

回答

0

我发现的唯一方法是使用ParseExact

string dateFormat = "yyyy-MM-dd-HH.mm.ss.FFFFFF"; 
var maxDate = DateTime.ParseExact(lastUpdate.LASTUPDATE,dateFormat, 
               CultureInfo.InvariantCulture);