Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Тип char to datetime  [new]
Kinst
Member

Откуда:
Сообщений: 33
Доброго время суток!

Может подскажете почему

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TTimeRes_]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TTimeRes_]
GO

CREATE TABLE [dbo].[TTimeRes_] (
[State_ON_OFF] [char] (5) COLLATE Cyrillic_General_CI_AS NULL ,
[DATA_STAMP] [smalldatetime] NOT NULL
) ON [PRIMARY]

declare @val int
declare @n1 int
declare @n2 int
declare @dt smalldatetime

select @n1 =substring (TRACE_DATA,1,1) from T1 where AutoInc = '1'
select @n2 =substring (TRACE_DATA,2,1) from T1 where AutoInc = '1'
select @dt = DATA_STAMP from T1 where AutoInc = '1'
set @val = @n2 + @n1 * 256

if @val > 300
begin
insert into TTimeRes_
values ('STATE_ON_OFF','ON')
Insert into TTimeRes_
values ('DATA_STAMP',@dt)
end

select * from TTimeRes_


ругаутся на преобразование типов в последнем Insert?
10 ноя 02, 16:54    [74235]     Ответить | Цитировать Сообщить модератору
 Re: Тип char to datetime  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
наверное всё-таки в предпоследнем
insert into TTimeRes_ 

values ('STATE_ON_OFF','ON')

в поле даты Вы строку пишите

кстати всё это можно написать одним запросом

insert into TTimeRes_
values ('STATE_ON_OFF','ON')
Insert into TTimeRes_
select 'DATA_STAMP',DATA_STAMP
from T1 where AutoInc = '1'
and convert(int,substring (TRACE_DATA,2,1) )+convert(int,substring (TRACE_DATA,1,1) )*256>300

а вообще по MS SQL есть отдельный форум
11 ноя 02, 10:36    [74448]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить