powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Чем чревата передача в хранимую процедуру даты как varchar параметр?
20 сообщений из 20, страница 1 из 1
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815692
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть процедура с параметрами типа varchar (10), с клиента получает такой параметр и в коде его преобразует в переменную типа datetime и потом все дела делает уже с этой переменной

Код: sql
1.
2.
3.
4.
5.
ALTER PROCEDURE my_proc (@D1 varchar(10))
as begin
DECLARE @Date1 datetime;
SET @Date1 = CONVERT(datetime, @D1, 104);
--всякий код с переменной @Date1 ...



Или это ок?
-----
Не люблю Progress OpenEdge.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815735
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кладовщик,

Ну как минимум убиваете прослушивание параметров. Плохо ли это или хорошо зависит от запросов которые будут эту вашу переменную использовать
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815782
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грабельки раскладываете. Не то, чтобы они прям критичные, но требуют от клиентов, чтобы они всегда склеивали дату в 104 формате. Ну и 4 байта на date меньше десяти на varchar.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815825
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичГрабельки раскладываете. Не то, чтобы они прям критичные, но требуют от клиентов, чтобы они всегда склеивали дату в 104 формате. Ну и 4 байта на date меньше десяти на varchar.Тип DATE занимает 3 байта, а не 4.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815848
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapГавриленко Сергей АлексеевичГрабельки раскладываете. Не то, чтобы они прям критичные, но требуют от клиентов, чтобы они всегда склеивали дату в 104 формате. Ну и 4 байта на date меньше десяти на varchar.Тип DATE занимает 3 байта, а не 4.

а есть ли трехбайтные регистры?
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815897
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетитель,

БД вообще без разницы - какие у кого регистры. А вот место для хранения - существенно.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815900
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовПосетитель,

БД вообще без разницы - какие у кого регистры. А вот место для хранения - существенно.
Всё так. но какое отношение имеет размер параметра к месту для хранения?
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815913
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетительiapпропущено...
Тип DATE занимает 3 байта, а не 4.

а есть ли трехбайтные регистры?А это важно? Если речь идёт о регистрах, то упоминать о размере даты вообще бессмысленно.
Потому что нам разве не всё равно?
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815916
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapПосетительпропущено...


а есть ли трехбайтные регистры?А это важно? Если речь идёт о регистрах, то упоминать о размере даты вообще бессмысленно.
Потому что нам разве не всё равно?

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

правда, в случае со строкой туда тоже, вероятно, пойдет адрес, а не все 10 байт.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815963
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для регистра на имеет значения, но 3 не требуют явного преобразования. В контексте вопроса - нет, не ОК, т.к. полученный результат будет зависеть от языка подключения. Могут поменяться местами день и месяц, если дату не передавать в ANSI текстовом формате.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39815968
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовДля регистра на имеет значения, но 3 не требуют явного преобразования. В контексте вопроса - нет, не ОК, т.к. полученный результат будет зависеть от языка подключения. Могут поменяться местами день и месяц, если дату не передавать в ANSI текстовом формате.Там далее конверт с указанием явного стиля.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39816354
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей АлексеевичВладислав КолосовДля регистра на имеет значения, но 3 не требуют явного преобразования. В контексте вопроса - нет, не ОК, т.к. полученный результат будет зависеть от языка подключения. Могут поменяться местами день и месяц, если дату не передавать в ANSI текстовом формате.Там далее конверт с указанием явного стиля.
Ну, значит будет падать при передаче в хранимку любой кривой даты.
Try_Convert бы хоть использовали.

кладовщик , если не секрет - зачем это?
В чем сакральный смысл?
Интересно. :-)
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39816446
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggsterНу, значит будет падать при передаче в хранимку любой кривой даты.
Try_Convert бы хоть использовали.

Дата не вручную вводится, а с контрола, т.е. '01.15.2019' ты не введешь, как я понимаю.
uaggster кладовщик , если не секрет - зачем это?
В чем сакральный смысл?
Интересно. :-)
Для меня это тоже секрет. Не думаю, что дело в сниффинге параметров.
Собственно, для того и тему создал.
Быстрым гуглением не нашёл такого - чтобы дата передавалась в процедуру как текст.
Думал, у кого-то с форума встречался такой кейс.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39816844
Диам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кладовщик,

если не использовать convert, то можно в начале процедуры задавать SET Dateformat DMY
Иначе, при вызове процедуры, например, с линуксового сайта, где система использует английские параметры окружения, ваша хранимка также будет настроена на использование английских установок, т.е. дата из текста будет браться как MDY или YMD
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39817012
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лет десять работал на системе, в которой ВСЕ параметры в принципе передавались как текст.

Никаких особых проблем не было с этим.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39817030
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КесарьЛет десять работал на системе, в которой ВСЕ параметры в принципе передавались как текст.

Никаких особых проблем не было с этим.Если клиент один и написан вами...
А если их сотни и пишутся в разных местах по всему Земному шару (или индусами на аутсорсинге!)?
Все ли будут чётко придерживаться общих правил?
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39817037
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это само собой. Клиент один был, конечно.

Но если система открытая, то тут нет никакого технического решения в принципе. Только организационные. Потому что, как показывает практика, косячить люди умеют и при использовании xml и json и вообще при любом способе передачи параметров.


* xml и json имеется в виду использование этих форматов для упаковки параметров в один блок.
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39817128
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КесарьНу это само собой. Клиент один был, конечно.

Но если система открытая, то тут нет никакого технического решения в принципе. Только организационные. Потому что, как показывает практика, косячить люди умеют и при использовании xml и json и вообще при любом способе передачи параметров.


* xml и json имеется в виду использование этих форматов для упаковки параметров в один блок.В данном случае достаточно передавать дату как параметр типа DATE, а не как строку. И всё!
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39817132
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КесарьЛет десять работал на системе, в которой ВСЕ параметры в принципе передавались как текст.

Никаких особых проблем не было с этим.

а как все дружно договариваются не целые числа передавть?
...
Рейтинг: 0 / 0
Чем чревата передача в хранимую процедуру даты как varchar параметр?
    #39817178
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKа как все дружно договариваются не целые числа передавть?

Клиент один, проблем нет.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Чем чревата передача в хранимую процедуру даты как varchar параметр?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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