Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Преобразование дат.  [new]
Виктор_777
Member

Откуда:
Сообщений: 24
Здравствуйте, сегодня столкнулся с проблемой при передаче параметров из одной табл. в другую: запись данных в 30 полей, число записей 800 000. В поля где тип данных datetime вставляю данные из полей с типом date. SQL пишет мол Преобразование типа данных date в тип данных datetime привело к выходу значения за пределы диапазона. Если ограничить число записей скажем до 10 000, то все проходит нормально. Получается тупо переполнение данных. Команда CONVERT (datetime, field1, 120) ничего не дала, как и др. ее варианты. Объем ОЗУ на железе 6Гб.

Помогите как передать данные.
14 фев 14, 22:35    [15570916]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование дат.  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
Откройте документацию и прочитайте про диапазоны допустимых значений для типов date и datetime. Затем напишите запрос, который выведет строки исходной таблицы, где значения в столбце с типом date не могут быть преобразованы в datetime. И решайте что с ними делать.
14 фев 14, 22:55    [15570982]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование дат.  [new]
Виктор_777
Member

Откуда:
Сообщений: 24
все строки с типом date не преобразуются в datetime. Все-таки почему при выборке в 10 000 строк все идет, а больше уже нет? Что за сила отвечает за это?
15 фев 14, 07:38    [15571442]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование дат.  [new]
Виктор_777
Member

Откуда:
Сообщений: 24
причем если выбрать ID от 0 до 79600 первых строк, то все хорошо грузиться, а если 79600<ID<80 000? то выдает ошибку. Хотя данных всего 200-300 из этого диапазона.
15 фев 14, 08:14    [15571461]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование дат.  [new]
aleks2
Guest
Виктор_777
причем если выбрать ID от 0 до 79600 первых строк, то все хорошо грузиться, а если 79600<ID<80 000? то выдает ошибку. Хотя данных всего 200-300 из этого диапазона.

Тредстартеру явно надо переквалифицироваться в управдомы.

Тибеж сказали, страдалец
invm
Откройте документацию и прочитайте про диапазоны допустимых значений для типов date и datetime. Затем напишите запрос, который выведет строки исходной таблицы, где значения в столбце с типом date не могут быть преобразованы в datetime. И решайте что с ними делать.
15 фев 14, 08:54    [15571478]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование дат.  [new]
Виктор_777
Member

Откуда:
Сообщений: 24
Все разобрался, всем спасибо. Действительно были битые данные (например '0964-01-01') тип данных date пропустил такой баг, а вот datetime нет.
15 фев 14, 21:17    [15572634]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование дат.  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62908
Никакого бага нет, у этих данных разные диапазоны, для date начинается с 0000, а для datetime с 1753 года, так что баг в голове
А ведь легко было разобраться если посмотреть справку прежде чем телегу катить на типы
15 фев 14, 22:35    [15572811]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить