簡體   English   中英

如何在L2E查詢中表示t-sql convert(datetime,data,style)?

[英]How to represent t-sql convert(datetime,data,style) in L2E query?

如何在Linq to Entities中編寫此查詢:

select convert(datetime,data,103) from Audit where ActionId = 1

列數據是varchar(max)類型。 我知道,如果ActionId連續等於1,則該行的Data列將始終包含一個以dd / MM / yyyy格式表示日期的字符串。

更新

我需要將L2E查詢的結果返回為IQueryable,因為在它之上應用了分頁/排序。 這是另一個原因,為什么我希望將此字段作為DateTime返回-能夠對其進行排序。

在客戶端而不是在服務器上進行格式化會更容易嗎?

我會做這樣的事情:

var audits = db.Audit
    .Where(arg => arg.ActionId == 1)
    .Select(arg => new { arg.Data })
    .AsEnumerable()
    .Select(arg => DateTime.ParseExact(arg.Data, "dd/MM/yyyy", CultureInfo.InvariantCulture)
    .ToList();

數據將以字符串格式檢索。
檢索到字符串后,它們將被轉換為DateTime

我發現了這一點: 在EF 4.0中將字符串轉換為Int ,如果我們創建一個將字符串轉換為日期時間的函數,則看起來像這樣的技巧可能有所幫助。

更新此問題對我來說還沒有解決。 由於需要快速解決方案,因此將“數據”列轉換為日期時間類型。 對於將來的擴展,這不是通用的,但現在可以使用。 解決方案之一不是真正的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM