SQL Server 2005 - добавить столбец в миллисекундах в столбец DateTime - PullRequest
0 голосов
/ 26 мая 2011

Как объединить 2 столбца с помощью SQL Server 2005?

Проблема в том, что DateTime хранится в 1 столбце, а миллисекунды хранятся в другом столбце.

Я хочу добавитьМиллисекунды на столбец DateTime, чтобы придать ему более точный DateTime.

Мне нужно использовать этот DateTime для запроса записи с точностью до миллисекунд.

Есть идеи?

Мне нужно заменитьDateTime с добавленными значениями.

SELECT * 
FROM TABLENAME 
WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
AND [DateTime] <= '2011-05-25 3:35:04 AM'

и запустите запрос.

Ответы [ 2 ]

0 голосов
/ 26 мая 2011

Ну, сначала решите свою проблему:

SELECT DATEADD(millisecond,<milliscolumn>,<datetimecolumn>) from <table>

А затем отправьте отчет об ошибке, что они все равно должны храниться в одном столбце.


Вы можете сделать это на основе вашего примера запроса, но учтите, что это исключает возможность использования сервером индекса:

SELECT * FROM TABLENAME WHERE
    DATEADD(millisecond,[MillisecondColumn],[DateTime]) between
        '2011-04-12T12:00:00' AND '2011-05-25T03:35:04'

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

Обратите внимание, что я заменил ваши два сравнения на один BETWEEN, а также скорректировал строки даты и времени, чтобы на них не влияли региональные настройки.

0 голосов
/ 26 мая 2011

SELECT (ColumnA + ColumnB) AS ColumnZ FROM Table

может решить вашу проблему.

...