簡體   English   中英

實體框架“從字符串中選擇日期時間”

[英]Entity framework “Select date time from string”

我需要從表中選擇日期間隔的記錄。

但是在此模式中,可供選擇的日期保留為nvarchar

20160511_155015 (yyyymmdd_hhmmss)

我不能使用ToList()將其設置為DateTime.ParseExact(entry.StartDate, "yyyyMMdd_HHmmss", CultureInfo.InvariantCulture)

該表保留了數百萬條記錄。 所以我需要做這樣的事情:

var preQuery = context.Table
              .AsNoTracking()
              .Select(x => new
             {
                StartDate = ConvertFrom()),
                Mode = x.Mode,
                SessionStart = x.AStart,
                SessionEnd = x.AEnd,
                x.SensorNumber
            })
            .Where(x => x.StartDate != null 
                   && x.StartDate >= startDate
                   && x.StartDate <= endDate)
            .ToList();

是否可以將字符串表示形式轉換為Datetime,然后繼續執行Where子句?

您可以嘗試:StartDate.StartsWith(“ 20160511”)左右。.或Convert.ToInt32(StartDate.Substring(0,8))> 20160511

順便說一句,我認為您可能想要運行一個腳本,只要它需要,並創建一個新列,該列將基於該列生成DateTime

請嘗試使用此DateTime.ParseExact(dateTime ,format,CultureInfo.InvariantCulture);

var preQuery = context.Table.AsNoTracking().Select(x => new
        {
            StartDate = ConvertFrom(),
            Mode = x.Mode,
            SessionStart = DateTime.ParseExact(x.AStart,"yyyyMMdd_HHmmss", CultureInfo.InvariantCulture),
            SessionEnd = DateTime.ParseExact(x.AEnd,"yyyyMMdd_HHmmss", CultureInfo.InvariantCulture),
            x.SensorNumber
        })
        .Where(x => x.StartDate != null && x.StartDate >= startDate && x.StartDate <= endDate)
        .ToList();

暫無
暫無

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

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