Linq
の結果があり、Date
からDateTime
のみを選択する必要があります。
私のクエリは次のようになります:
var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE
where xx.USER_ID == userid && xx.IS_ACTIVE == 1
select new
{
xx.TEMPLATE_ID,
xx.TEMPLATE_NAME,
//CREATED_DATE = xx.CREATED_DATE.Value.Date
//CREATED_DATE = EntityFunctions.TruncateTime(xx.CREATED_DATE)
xx.CREATED_DATE
}).ToList();
それは可能ですか?どんな助けでも大歓迎です。
CREATED_DATE - `datetime` datatype
実際には、それをDataSource
としてコントロールにバインドしていますが、コントロールは両方のDate and Time
を表示しています。しかし、date
だけを表示したいと思います。
CREATED_DATE = xx.CREATED_DATE.Value.Date
で試していると、次のようなエラーが発生します。
指定された型メンバー 'Date'は、LINQ to Entitiesではサポートされていません。初期化子、エンティティメンバー、およびエンティティナビゲーションプロパティのみがサポートされています。
プレゼンテーション目的の場合は、DataFormatString
プロパティを使用できます。たとえば、データソースをGridViewにバインドしている場合、次のようにすることができます。
<asp:BoundField DataField="CREATED_DATE" ...
DataFormatString="{0:d}" ../>
または、 EntityFunctions.TruncateTime() を使用して、時刻部分なしで入力日付を返すことができます。
EntityFunctions.TruncateTime(xx.CREATED_DATE)
あなたのクエリは次のようになります。
var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE
where xx.USER_ID == userid && xx.IS_ACTIVE == 1
select new
{
xx.TEMPLATE_ID,
xx.TEMPLATE_NAME,
EntityFunctions.TruncateTime(xx.CREATED_DATE) //new like
}).ToList();
これを使用してください...それは私のために働きました...
var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE
where xx.USER_ID == userid && xx.IS_ACTIVE == 1
select new
{
xx.TEMPLATE_ID,
xx.TEMPLATE_NAME,
CREATED_DATE=SqlFunctions.DateName("day", xx.CREATED_DATE).Trim() + "/" +
SqlFunctions.StringConvert((double)xx.CREATED_DATE.Value.Month).TrimStart() + "/" +
SqlFunctions.DateName("year", xx.CREATED_DATE)
}).ToList();
そして、出力日はdd/MM/yyyy形式になります
これを試して、
var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE
where xx.USER_ID == userid && xx.IS_ACTIVE == 1
select new Attributes
{
TEMPLATE_ID=xx.TEMPLATE_ID,
TEMPLATE_NAME=xx.TEMPLATE_NAME,
dateCreatd = xx.CREATED_DATE
})
.AsEnumerable()
.select(p=>new Attributes
{
TEMPLATE_ID =p.TEMPLATE_ID,
TEMPLATE_NAME=p.TEMPLATE_NAME,
dateString = p.dateCreatd .Value.toString("YYYY-MMM-dd")
}).ToList();
public class Attributes
{
public string TEMPLATE_ID { get; set; }
public string TEMPLATE_NAME { get; set }
public DateTime dateCreatd { get; set; }
public string dateString { get; set; }
}
それがあなたに役立つことを願っています
たぶんこれ?
var qry = (from xx in VDC.SURVEY_TEMPLATE
where xx.USER_ID == userid && xx.IS_ACTIVE == 1
select new { xx.TEMPLATE_ID, xx.TEMPLATE_NAME, xx.xx.CREATED_DATE });
var UserTemplates = qry.AsEnumerable().Select(xx => new
{
xx.TEMPLATE_ID,
xx.TEMPLATE_NAME,
xx.CREATED_DATE.Value.Date
}).ToList();
var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE
where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select xx).AsEnumerable()
.Select( i=> new
{
i.TEMPLATE_ID,
i.TEMPLATE_NAME,
CREATED_DATE = i.CREATED_DATE.ToString("M/d/yyyy"),
i.CREATED_DATE
}).ToList();