2015-05-19 4 views
0

У меня есть таблица данных со столбцом (strDate), которая содержит такие значения, как '20150519'. Я хочу создать новый столбец DateTime в таблице данных (без использования цикла), который содержит представление даты strDate.Несоответствие типа в выражении 'System.Data.UnaryNode'

Я попытался это:

table.Columns.Add("NewDate", typeof(DateTime)).Expression = 
      "CONVERT((SUBSTRING(strDate, 0, 5) + '/' + 
         SUBSTRING(strDate, 5, 2) + + '/' + 
         SUBSTRING(strDate, 7, 2)), 'System.DateTime')"; 

Но это дает ошибку, что: Type mismatch in expression 'System.Data.UnaryNode'

Основополагающим здесь вопрос: какая функция подстроки используется здесь? SQL или .Net? Из документации я понимаю, что это не SQL. Но Substring .NET является унарный оператор (который рядный с сообщением об ошибке), но тогда я думаю, что мое заявление должно выглядеть следующим образом:

table.Columns.Add("NewDate", typeof(DateTime)).Expression = 
      "CONVERT((strDate).Substring(0, 4) + '/' + 
        (strDate).Substring(4, 2) + '/' + 
        (strDate).Substring(6, 2), 'System.DateTime')"; 

, который в свою очередь производят ошибку:

"Cannot interpret token '.' at position 21." 

ответ

0

Это решение в конечном итоге сработало для меня. Обратите внимание, что подстрока не основана на 0, поэтому я бы предположил, что это SQL-версия подстроки.

table.Columns.Add("ChangeDate", typeof(DateTime)).Expression = 
        "CONVERT(SUBSTRING([APO_CHDATE], 1, 4) + '/' + 
          SUBSTRING([APO_CHDATE], 5, 2) + '/' + 
          SUBSTRING([APO_CHDATE], 7, 2), 'System.DateTime')"; 

 Смежные вопросы

  • Нет связанных вопросов^_^