powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Непонятки с датами и MSSQL
20 сообщений из 20, страница 1 из 1
Непонятки с датами и MSSQL
    #32236874
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi All

В таблице есть два поля типа datetime. Пытаюсь из программы передать в ХП два параметра типа datetime но один это текущая дата Date, а второй получен из строки strtodate('14.08.2003'), так вот при выполнении ХП вылетает ошибка "Error converting data type varchar to datatime". Как побороть?
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236886
pako
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут уже где-то писалось, как это делать.

Я передаю в XP на MSSQL2000 дату в виде строки '2003.08.14 10:10:00'.
Все нормально берется. Так что дату в строку (гггг.мм.чч чч:мм:cc) и в XP.
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236902
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой чч.мм.сс???
Сделай в QA то, что ты хочешь получить, и сразу станет понятно, что дату надо передавать в кавычках, так, что пиши QuatedStr(DateToStr(Date)) и туда ее родимую. Можешь напороться на грабли с региональными настройками, тогда надо конвертить дату в соответствующий скулю формат, или использовать универсальный, если не ошибаюсь "20030814" (сегодня)
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236905
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если я открываю таблицу в Enterprise Managere то вижу дата представленна в виде дд.мм.гг а как передать гг.мм.дд?
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236915
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПОВТОРЯЮ
Есть в MS SQL такая вот штучка:
SET DATEFORMAT YMD
Где YMD - формат даты ...
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236922
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
insert into a_test VALUES ( 1 , '20030814')
select * from a_test


Результат
Код: plaintext
1.
2.
3.
4.
code        dt                          
 ----------- --------------------------- 
 
 1             2003 - 08 - 14   00 : 00 : 00 . 000 


в таблице через EM
Код: plaintext
1.
2.
code  dt
 1       14 / 08 / 2003 
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236924
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как его поставить для всех таблиц если они уже созданы. Хотя и первый ворос все еще открыт.
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236933
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вот при открытии его и надо ставить ... Это я про SET DATEFORMAT
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236937
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Он (SET) изменяет формат преобразования даты ...
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236939
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, всем спасибо разобрался, действительно передал дату ввиде '20030814' все заработало, хотя непонятно тогда почепу работает StrToDate(Del_date) где
Del_date:='01.01.2100'
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236942
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код в студию! Что-то советы не туда. Какая разница как у тебя на сервере дата прописана?
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236953
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код вызова процедуры
SQL.Clear;
Sql.Append('exec insert_ylic :p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8');
Params.ParamValues['p1']:=Edit1.Text;
Params.ParamValues['p2']:= ComboBox1.ItemIndex;
Params.ParamValues['p3']:= User_name;
Params.ParamValues['p4']:= Start_date;
Params.ParamValues['p5']:= '';
Params.ParamValues['p6']:= StrToDate(Del_date);
Params.ParamValues['p7']:= '';
Params.ParamValues['p8']:= '';
ExecSql;
Процедура.
CREATE PROCEDURE [insert_ylic]
(@NAM_YLIC_1 [varchar](40),
@VID_YLIC_2 [int],
@KTO_VVOD_3 [varchar](50),
@DAT_VVOD_4 [datetime],
@KTO_YDOL_5 [varchar](50),
@DAT_YDOL_6 [datetime],
@KOD_RAY_7 [int],
@USER_LOCK_8 [varchar](2))
AS
INSERT INTO [budget].[dbo].[SP_YLIC]
( [NAM_YLIC],
[VID_YLIC],
[KTO_VVOD],
[DAT_VVOD],
[KTO_YDOL],
[DAT_YDOL],
[KOD_RAY],
[USER_LOCK])
VALUES
( @NAM_YLIC_1,
@VID_YLIC_2,
@KTO_VVOD_3,
@DAT_VVOD_4,
@KTO_YDOL_5,
@DAT_YDOL_6,
@KOD_RAY_7,
@USER_LOCK_8)
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32236997
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процедура в SQL
Код: plaintext
1.
2.
3.
CREATE PROCEDURE [a_test_sp]  @i int, @dt datetime
AS
INSERT INTO a_test VALUES (@i, @dt)


Обращение из Дельфи
Код: plaintext
1.
2.
3.
4.
5.
  ADOStoredProc1.Parameters.Refresh;
  ADOStoredProc1.Parameters[ 1 ].Value :=  1 ;
// Тип параметра №  2  - DateTime
  ADOStoredProc1.Parameters[ 2 ].Value := DateTimePicker1.Date;
  ADOStoredProc1.ExecProc;


Если дата у тебя берется из строки, то он должна строго соответствовать региональным установкам или быть сконвертирована в вид "YYYYMMDD" и так передана в процедуру SQL
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32237337
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как текущую дату вставить?
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32237340
Adony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Куда вставить?
DateTimePiker1.Date:=NOW;
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32237452
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, в процедуру.
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32237470
Adony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что now не проходит???
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32237500
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сделать так, то не проходит, ошибку смотри выше.
Params.ParamValues['p4']:= NOW;
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32237528
Adony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FormatDateTime('yyyymmdd',now)
...
Рейтинг: 0 / 0
Непонятки с датами и MSSQL
    #32237604
Andrey Pogorelov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Сенкс
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Непонятки с датами и MSSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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