2013-01-22 44 views
0

我們在DataTable中有一些數據,我們正在使用這樣的查詢來獲取我們需要的內容。在datetimein中提取僅日期部分LINQ

IEnumerable<Results> subResult = from query in datatable.AsEnumerable() 
          select new Results 
            { 
             Name = query.Field<string>("Name"), 
             Date = query.Field<DateTime?>("Date") 
            } 

這上面的查詢返回結果是什麼,我需要,但迄今全格式(例如:m/dd/yyyy hh:min:sec am/pm),但我們需要的僅日期部分(僅限於MM/DD/YYYY需要被拉到)。當查看這些屬性時,找不到隱含的方式來獲取它,請幫助我獲得此結果。謝謝。

+0

AFAIK存在.NET沒有時間上課。部分,如果你想要純粹的日期,你應該寫一個類,否則你可以把部分拉出來作爲一個字符串。 –

+1

您正在討論字符串表示。但是你並沒有展示你是如何創造這個的。請顯示將日期轉換爲字符串的代碼。 –

回答

0

DateTime類具有您剛剛提到的所有屬性。你應該嘗試用ToString(「anyformatyouwant」)格式修復你的顯示。

0

這個怎麼樣?

Date = query.Field<DateTime?>("Date").Date 
+0

它給我錯誤說system.date不包含'日期'的定義,並且沒有擴展方法'Date'接受類型的第一個參數。 (你在使用僞指令還是程序集引用?) – svs

+0

@svs「你在使用僞指令還是程序集引用? –

+0

源數據表中的列是否可以爲空? –

0

這會給你只是日期部分:

IEnumerable<Results> sub-result= from query in datatable.AsEnumerable() 
    where new Results 
    { 
     Name = query.Field<string>("Name"), 
     Date = query.Field<DateTime?>("Date").Date 
    } 

不過,如果你只是想顯示日期的地方(這意味着你不能用此來做日期分組等然後我只想指定顯示格式在UI層。

+1

值得注意的是,Date簡單地將時間元素歸零,但在進行比較/相等操作時時間元素仍然存在。 –

+0

它給了我一個錯誤,說system.date不包含'Date'的定義,並且沒有找到接受類型爲的第一個參數的擴展方法'Date'。 (你是否正在使用指令或程序集引用?) – svs

0

AFAIK存在.NET沒有Date類,如果你想純日期,你應該寫一個類,否則,你可以拉出部分作爲一個字符串

DateTime.Now.Date.ToString("yyyy/MM/dd") 

爲您提供了字符串類型的當前日期,但如果你的.Date部分它給你一個DateTime對象仍然具有顯示AM 12:00:00:0 blah blah