Отобразить дату

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
morrex
Сообщения: 4
Зарегистрирован: 05 июл 2006, 10:55
Контактная информация:

Отобразить дату

Сообщение morrex »

Помогите пожалуйста разобраться с представлением даты в таблицах галактики - как число 131467035 преобразовать в читабельный дд.мм.гггг? (необходимо для прямого доступа к таблице mssql во внешнем приложении)
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Сообщение aleks1232321 »

Так предлагает ТП (Москва)

Преобразование даты и времени для Галактики под MS SQL | 27.III.2002 @ 12:14 | sniper
внешними средствами можно использовать данные процедуры:

create proc TO_ATLDATE
@lastdate varchar(10)
as
select CONVERT(INT,
SUBSTRING(CONVERT(BINARY(2),DATEPART(YY,@lastdate)),1,1)+
SUBSTRING(CONVERT(BINARY(2),DATEPART(YY,@lastdate)),2,1)+
CONVERT(BINARY(1),DATEPART(MM,@lastdate))+
CONVERT(BINARY(1),DATEPART(DD,@lastdate)))

create proc TO_SQLDATE
@lastdate int
as
declare @datedisplay char(23)
set @datedisplay = convert(datetime,
convert(char(4),convert(int,SUBSTRING(CONVERT(BINARY(4),@lastdate),1,2)))+'-'+
rtrim(convert(char(2),convert(int,SUBSTRING(CONVERT(BINARY(4),@lastdate),3,1))))+'-'+
rtrim(convert(char(2),convert(int,SUBSTRING(CONVERT(BINARY(4),@lastdate),4,1)))))
select rtrim(convert(char(2),DATEPART(DD,@datedisplay)))+'-'+
rtrim(convert(char(2),DATEPART(MM,@datedisplay)))+'-'+
convert(char(4),DATEPART(YYYY,@datedisplay))

create proc TO_ATLTIME
@lasttime varchar(10)
as
Select CONVERT(INT,
CONVERT(BINARY(1),DATEPART(HH,@lasttime))+
CONVERT(BINARY(1),DATEPART(MI,@lasttime))+
CONVERT(BINARY(1),DATEPART(SS,@lasttime))+
CONVERT(BINARY(1),DATEPART(MS,@lasttime)/10))

alter proc TO_SQLTIME
@lasttime int
as
declare @timedisplay char(23)
set @timedisplay = convert(datetime,
convert(char(2),convert(int,SUBSTRING(CONVERT(BINARY(4),@lasttime),1,1)))+':'+
convert(char(2),convert(int,SUBSTRING(CONVERT(BINARY(4),@lasttime),2,1)))+':'+
convert(char(2),convert(int,SUBSTRING(CONVERT(BINARY(4),@lasttime),3,1)))+':'+
convert(char(2),convert(int,SUBSTRING(CONVERT(BINARY(4),@lasttime),4,1))) ,114)
select rtrim(convert(char(2),DATEPART(HH,@timedisplay)))+':'+
rtrim(convert(char(2),DATEPART(MI,@timedisplay)))+':'+
rtrim(convert(char(2),DATEPART(SS,@timedisplay)))+':'+
rtrim(convert(char(2),DATEPART(MS,@timedisplay)))
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Дату Галактисты хранят в MSSQL-ом варианте в INT-е
4 байта : 1 -день
1 -месяц
2 -год
Ответить