2013-08-31 19 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);