дата в MS SQL
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный гость
- Сообщения: 57
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Украина, Донецк ОАУК
- Контактная информация:
дата в MS SQL
Народ, кто знает
в каком формате в поле Integer хранятся даты?
Подскажите, плз. ???
в каком формате в поле Integer хранятся даты?
Подскажите, плз. ???
-
- Постоянный гость
- Сообщения: 57
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Украина, Донецк ОАУК
- Контактная информация:
Re: дата в MS SQL
Спасибо, Den.
Круто, конечно... А мы искали легких путей.
Если все так лихо закручено, значит это кому-нибудь нужно... Любопытно, кому. Хотелось бы знать, за какую идею страдаем.
Круто, конечно... А мы искали легких путей.
Если все так лихо закручено, значит это кому-нибудь нужно... Любопытно, кому. Хотелось бы знать, за какую идею страдаем.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: дата в MS SQL
А ничего такого особого в это нет. Делов том, что, по всей видимости, это сложилось исторически. Изначально Г разрабатывалась под Битрив. А там дата хранится также : два байта-год, байт-месяц, байт -день. Поэтому в MSSQL галактисты и выбрали для хранения дат INTEGER .Драйвер к тому же переписывать не нужно.
А в чем у Вас трудность ?
А в чем у Вас трудность ?
-
- Постоянный гость
- Сообщения: 70
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Украина ИВЦ при Ингулецком ГОКе
- Контактная информация:
Re: дата в MS SQL
Ну я чуть попроще функцию юзаю:
CREATE FUNCTION dbo.galdate_d (@galdat_ int)
RETURNS datetime AS
BEGIN
declare @gal_dat2 nchar(10),
@i int,
@prom nchar(10)
set @gal_dat2=str(convert(int,substring(convert(binary(4),@galdat_),4,1)),2)+'/'+str(convert(int,substring(convert(binary(4),@galdat_),3,1)),2)+'/'+str(convert(int,substring(convert(binary(4),@galdat_),1,2)),4)
select @i=1,@prom=''
while @i<=len(@gal_dat2)
begin
if substring(@gal_dat2,@i,1)=' '
select @prom=rtrim(ltrim(@prom))+'0'
else
select @prom=rtrim(ltrim(@prom))+substring(@gal_dat2,@i,1)
select @i=@i+1
end
return convert(datetime,@prom)
END
CREATE FUNCTION dbo.galdate_d (@galdat_ int)
RETURNS datetime AS
BEGIN
declare @gal_dat2 nchar(10),
@i int,
@prom nchar(10)
set @gal_dat2=str(convert(int,substring(convert(binary(4),@galdat_),4,1)),2)+'/'+str(convert(int,substring(convert(binary(4),@galdat_),3,1)),2)+'/'+str(convert(int,substring(convert(binary(4),@galdat_),1,2)),4)
select @i=1,@prom=''
while @i<=len(@gal_dat2)
begin
if substring(@gal_dat2,@i,1)=' '
select @prom=rtrim(ltrim(@prom))+'0'
else
select @prom=rtrim(ltrim(@prom))+substring(@gal_dat2,@i,1)
select @i=@i+1
end
return convert(datetime,@prom)
END
-
- Постоянный гость
- Сообщения: 70
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Украина ИВЦ при Ингулецком ГОКе
- Контактная информация:
Re: дата в MS SQL
Кому нужно могу и обратную опублтковать в том числе и для времени.
-
- Постоянный обитатель
- Сообщения: 188
- Зарегистрирован: 17 июн 2008, 17:07
- Откуда: Москва
- Контактная информация:
Re: дата в MS SQL
если есть возможность, для времени, было бы очень хорошо..igornov писал(а):Кому нужно могу и обратную опублтковать в том числе и для времени.
-
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Re: дата в MS SQL
собственно старт...
Код: Выделить всё
SET @SALDO = CONVERT (DATETIME, '01/07/2007', 103)
SET @SALDOI = year (@SALDO) * 256 * 256 + 256 * month (@SALDO) + day (@SALDO)
Время ведет!