Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странное преобразование дат MS SQL 7.0 / 4 сообщений из 4, страница 1 из 1
11.07.2002, 18:26:18
    #32036335
GuestX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное преобразование дат MS SQL 7.0
Профессионалы MS SQL 7.0, помогите разобраться!
Создается хранимая процедура вида:

CREATE PROCEDURE #PROC
@D1 datetime , @D2 datetime
AS
BEGIN
SELECT {список полей}
FROM {список таблиц}
WHERE (Таблица1.DATE BETWEEN @D1 AND @D2) AND
{список условий}
END
Выполнение:
EXECUTE #PROC '20020101', '20020630'

При ее выполнении недавно начались проблемы: запрос стал все время возвращать разное число записей, причем всегда неверное значение (выполняю в Query Analyzer, оперативные данные в базе не меняются)
Если процедуру написать в виде:

CREATE PROCEDURE #PROC
@D1 datetime , @D2 datetime
AS
BEGIN
DECLARE @D1x datetime, @D2x datetime

SET @D1x = convert(datetime,@D1)
SET @D2x = convert(datetime,@D2)

SELECT {список полей}
FROM {список таблиц}
WHERE (Таблица1.DATE BETWEEN @D1x AND @D2x) AND
{список условий}
END

то все работает правильно.
Преобразование типов перед вызовом процедуры не помогает:

DECLARE @D1 datetime, @D2 datetime
SET @D1 = convert(datetime, '20020101')
SET @D2 = convert(datetime, '20020630')
EXECUTE #P_SQUERY @D1, @D2

В MS SQL 2000 все варианты работают правильно.
Может кто-нибудь знает, что происходит?

PS. Все даты в таблице корректные (правда присутствует NULL), ошибок в базе нет, установлен SP4
...
Рейтинг: 0 / 0
11.07.2002, 19:50:01
    #32036357
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное преобразование дат MS SQL 7.0
CREATE PROCEDURE #PROC
@D1 char(8) , @D2 char(8)
AS
...

И передавать в процедуру пераметры в виде char, в формате 'yyyymmdd'.
ХАО.
...
Рейтинг: 0 / 0
12.07.2002, 06:50:15
    #32036391
Deosfen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное преобразование дат MS SQL 7.0
Передавай параметры в виде
"yyyymmdd HH:MM"
...
Рейтинг: 0 / 0
12.07.2002, 06:53:13
    #32036392
Deosfen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное преобразование дат MS SQL 7.0
Забыл даписать, не надо преобразований внутри процедуры, сервер сам преобразует в тип datetime.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странное преобразование дат MS SQL 7.0 / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]