Даты не распознаются как даты в сводной таблице, извлекаемой напрямую из SQL Server

Даты не распознаются как даты в сводной таблице, извлекаемой напрямую из SQL Server

Мой pivot извлекает данные из внешнего источника со столбцом даты. Excel не видит этот столбец как дату, а панель параметров «Формат ячеек» не меняет способ отображения дат. Данные ячейки выровнены по левому краю, что предполагает строку, а не дату. Я пробовал cast(myvar as date) и convert(varchar, myvar, 101) и convert(varchar, myvar, 1) в базовой таблице, но ни один из них не был воспринят Excel как дата.

Если столбец распознается как дата, я могу сгруппировать по неделям и месяцам. Я понимаю, что если я не смогу это исправить, следующим шагом будет добавление столбцов с неделями и месяцами для каждой даты в таблицу, но я хотел бы еще раз попробовать отформатировать столбец, прежде чем делать это.

решение1

Попробуйте преобразовать дату в datetime.

Дата SQL Server внутренне представлена ​​как 3-байтовое целое число, тогда как datetime — это 8 байтов и, предположительно, с плавающей точкой. Excel использует double для представления дат/времени, поэтому формат datetime SQL Server может лучше сопоставляться, чем date.

решение2

Попробуйте использовать код SQL в качестве источника для вашей сводной таблицы, а не таблицу или запрос, расположенный в SQL Server. Возможно, ваши операторы Cast() будут более эффективными в этом случае.

  1. Нажмите на сводную таблицу.
  2. Нажмите «Инструменты сводной таблицы»>«Параметры»>«Изменить источник данных» (стрелка)>«Свойства подключения».
  3. Нажмите «Определение»
  4. Измените тип команды на «SQL-запрос»
  5. Вставьте или введите оператор SQL в область текста команды.

Я предполагаю, что вы используете Excel 2007. В Excel 2003 подход был бы аналогичным, просто другой способ доступа.

решение3

Используйте функцию Convert со 120стилем. Это формат даты ISO, Excel должен его распознать.

Связанный контент