Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2012, 15:57   #1
Abdukhafiz
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 31
По умолчанию Работа с датами в SQL Server 2005

Привет всем...
У мя тут есть такая проблема... Я написал следующий запрос:

Код:
DECLARE @qwe CHAR(19) 
SET @qwe = '2012-03-19 15:25:39' 
IF @qwe = '<Null>' 
BEGIN 
SET @qwe = Null 
END 
ELSE 
SET @qwe = @qwe 
INSERT INTO test(datetime1) VALUES(@qwe)
Выводит такую ошибку:
Msg 242, Level 16, State 3, Line 9
Преобразование типа данных char в тип данных datetime привело к значению datetime за пределами диапазона.
Выполнение данной инструкции было прервано.


Что нужно делать?
Abdukhafiz вне форума Ответить с цитированием
Старый 17.04.2012, 16:16   #2
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Я вам уже сказал что делать, в чем непонимание?
С датами надо работать как с датами, тогда проблем не будет.
=master= вне форума Ответить с цитированием
Старый 17.04.2012, 16:27   #3
Abdukhafiz
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 31
По умолчанию

Цитата:
Сообщение от =master= Посмотреть сообщение
Я вам уже сказал что делать, в чем непонимание?
С датами надо работать как с датами, тогда проблем не будет.
С датами я работать буду.. , но тут у меня в массиве данные.. а в массиве есть и даты и строковая "<Null>"... Вот в чем проблема
Abdukhafiz вне форума Ответить с цитированием
Старый 17.04.2012, 16:36   #4
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Не вижу проблем.
Идет дата и пусть себе идет, идет мусор заменили на NULL (или как вам надо).

А еще правильнее избавиться от мусора изначально.
=master= вне форума Ответить с цитированием
Старый 17.04.2012, 16:38   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И так не должны быть проблемы
Код:
INSERT INTO test(datetime1) VALUES(CONVERT(datetime,@qwe,120))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.04.2012, 16:51   #6
Abdukhafiz
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
И так не должны быть проблемы
Код:
INSERT INTO test(datetime1) VALUES(CONVERT(datetime,@qwe,120))
все равно та же ошибка:
Преобразование типа данных char в тип данных datetime привело к значению datetime за пределами диапазона.
Abdukhafiz вне форума Ответить с цитированием
Старый 17.04.2012, 16:52   #7
Abdukhafiz
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 31
По умолчанию

Цитата:
Сообщение от =master= Посмотреть сообщение
Не вижу проблем.
Идет дата и пусть себе идет, идет мусор заменили на NULL (или как вам надо).

А еще правильнее избавиться от мусора изначально.
Ну я же избавляюсь от мусора с помощью IF ELSE
Abdukhafiz вне форума Ответить с цитированием
Старый 17.04.2012, 17:04   #8
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

У вас значение @qwe идет извне, добейтесь, что-бы оно приходило с типом datetime, тем более, что вы утверждаете, что в массиве оно и лежит как дата. Как - в соотв. ветке написал.
И проблемы исчезнут сами собой.
=master= вне форума Ответить с цитированием
Старый 17.04.2012, 19:54   #9
Abdukhafiz
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 31
По умолчанию

Ребята всем огромное спасибо.. СРАБОТАЛООО....

Вот не понимаю что озночает 120 в
Код:
INSERT INTO test(datetime1) VALUES(CONVERT(datetime,@qwe,120))
Abdukhafiz вне форума Ответить с цитированием
Старый 17.04.2012, 20:18   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

http://msdn.microsoft.com/ru-ru/library/ms187928.aspx
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами и строками в SQL SERVER 2005 Abdukhafiz SQL, базы данных 1 05.04.2012 23:40
запрос в SQL server 2005 студенточка! Помощь студентам 0 17.12.2011 23:15
Работа с MS SQL Server 2005 EE LittleFatCat SQL, базы данных 2 03.10.2011 12:00
Проблема при работе с датами sql server в delphi Fellot БД в Delphi 3 05.06.2010 22:50