Как преобразовать дату и время для строкового представления в linqtosql?

Я использую linqtosql и в запросе linq, я пытался преобразовать столбец типа даты и времени для строкового представления как 'dd-MM-yy'. Однако я получил ошибку как следующее:

NotSupportedException: Метод 'Система. Представьте ToString в виде строки (Система. Строка)', не имеет никакого поддерживаемого перевода в SQL.

следующее является моим запросом linq:

from ffv in Flo_flowsheet_values
where ffv.Flowsheet_key == 2489
&& ffv.Variable_key == 70010558
&& ffv.Status == 'A'
&& ffv.Column_time >= DateTime.ParseExact("2010-06-13 00:00", "yyyy-MM-dd HH:mm", null)
&& ffv.Column_time <= DateTime.ParseExact("2010-06-13 22:59", "yyyy-MM-dd HH:mm", null)
select new  { 
ColumnTime = ffv.Column_time
,ColumnTimeForXCategory = ffv.Column_time.Value.ToString("dd-MM-yy") ***====> this statement invoke error***
,BTValue = Convert.ToDouble( ffv.Value) }
7
задан GEOCHET 25 June 2012 в 23:35
поделиться

3 ответа

Вы анализируете строки DateTime в самом выражении, и поставщик LINQ to SQL не может преобразовать этот код C # в эквивалентный код T-SQL.

Попробуйте вместо этого что-нибудь вроде этого:

DateTime start 
    = DateTime.ParseExact(
        "2010-06-13 00:00", 
        "yyyy-MM-dd HH:mm", 
        CultureInfo.InvariantCulture);
DateTime end 
    = DateTime.ParseExact(
        "2010-06-13 22:59", 
        "yyyy-MM-dd HH:mm", 
        CultureInfo.InvariantCulture);

from ffv in Flo_flowsheet_values
where ffv.Flowsheet_key == 2489
    && ffv.Variable_key == 70010558
    && ffv.Status == 'A'
    && ffv.Column_time >= start
    && ffv.Column_time <= end
select new 
{ 
    ColumnTime = ffv.Column_time,
    ColumnTimeForXCategory = ffv.Column_time.Value.ToString("dd-MM-yy")
    BTValue = Convert.ToDouble( ffv.Value)
};
0
ответ дан 6 December 2019 в 12:46
поделиться

Как упоминалось выше, вы можете linq переводить то, что вы делаете, в sql. В данном случае это невозможно. Но вы можете преобразовать его в строку перед запросом, а затем передать строку в выражение linq.

0
ответ дан 6 December 2019 в 12:46
поделиться

Не заставляйте базу данных форматировать строки для пользовательского интерфейса. Разбирайте ее на стороне клиента.

0
ответ дан 6 December 2019 в 12:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: