powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странное преобразование дат MS SQL 7.0
4 сообщений из 4, страница 1 из 1
Странное преобразование дат MS SQL 7.0
    #32036335
GuestX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Профессионалы 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
Странное преобразование дат MS SQL 7.0
    #32036357
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE PROCEDURE #PROC
@D1 char(8) , @D2 char(8)
AS
...

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


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