[英]C# Linq To Entities Formatted DateTime in IQueryable
我想要實現的是獲取“ FormattedTimeStamp”成員變量以包含格式如下的日期:“ 12/09/2015 13:00”
我得到的是:“ 12/9/2015 13:0”
無論如何,僅使用普通的LINQ to SQL而不傳播到服務器(使用AsEnumerable()等)來執行此操作?
請參閱下面的內容,了解我現在可以編譯和運行的內容,但是沒有提供我所需要的。
謝謝。
IQueryable<Import_ErrorDTO> dtoErrors = from i in errors
select new Import_ErrorDTO
{
Error_ID = i.Error_ID,
ErrorDescription = i.ErrorDescription,
FileName = i.FileName,
ImportTimeStamp = i.ImportTimeStamp,
FormattedImportTimeStamp = SqlFunctions.StringConvert((double)SqlFunctions.DatePart("Month", i.ImportTimeStamp)).Trim() + "/" +
SqlFunctions.StringConvert((double)SqlFunctions.DatePart("Day", i.ImportTimeStamp)).Trim() + "/" +
SqlFunctions.StringConvert((double)SqlFunctions.DatePart("Year", i.ImportTimeStamp)).Trim() + " " +
SqlFunctions.StringConvert((double)SqlFunctions.DatePart("hh", i.ImportTimeStamp)).Trim() + ":" +
SqlFunctions.StringConvert((double)SqlFunctions.DatePart("mi", i.ImportTimeStamp)),
Program = i.Program
};
我同意這樣的觀點,即應該在表示層中進行處理。 但是,如果您真的想在SQL Server上執行此操作,則可以將0
附加到代表分鍾的字符串上,然后使用Right
函數僅接受2個最右邊的字符。
SqlFunctions.Right("0" + SqlFunctions.StringConvert(
(double)SqlFunctions.DatePart("mi", i.ImportTimeStamp)), 2)
解決該問題的一種方法是創建一個構造函數。
public Import_ErrorDTO(DateTime dt)
{
FormattedDate = dt.ToString("MM/dd/yyyy HH:mm");
}
然后傳入ImportTime:
IQueryable<Import_ErrorDTO> dtoErrors = from i in errors
select new Import_ErrorDTO(i.ImportTimeStamp)
{
Error_ID = i.Error_ID,
ErrorDescription = i.ErrorDescription,
FileName = i.FileName,
ImportTimeStamp = i.ImportTimeStamp,
Program = i.Program
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.