Страница 1 из 1

Преобразование даты

Добавлено: 12 мар 2004, 13:01
cleosveta
в Галактике дата хранится в числе
я лезу через ODBC сторонним клиентом
мне нужно дату преобразовать в переменную типа дата

не подскажите как это сделать
или какой формат у числовой даты

Re: Преобразование даты

Добавлено: 12 мар 2004, 14:37
Deinis
База данных "Вопросы и ответы". Вопрос "Формат даты в условных операторах ТХО".
Для определения "код даты" (количества дней с 01 января 0001 года) в алгоритме используется следующая функция
To_Days(Date(ДД,ММ,ГГГГ)),
где ДД - день, ММ - месяц, ГГГГ - год.
To_Days(Date(01,06,2000)) = 730272
Обратное преобразование
From_Days(730272) = <01/06/2000>

Re: Преобразование даты

Добавлено: 12 мар 2004, 15:20
Den
О какой Галке идет речь ? если BTRIEVE, то вроде как (тип данных date) :
самый младший - день
постарше - месяц
3-й - год
4-й - год

если MSSQl то там дата в инте хранится.Преобразовать можно вот так :

CREATE Function IntToDate (@Date As Int) Returns DateTime
As
Begin
Declare @Res DateTime
Declare @CYear Char(4), @CMonth Char(2), @CDay Char(2), @CDate VarChar(8)
Declare @IYear Int, @IMonth Int, @IDay Int
--год
Set @IYear=Cast(Ceiling(@Date/65536) As Int)
Set @CYear=Right(Cast(@IYear As VarChar(4)),4)
Set @Date=@Date-(@IYear*65536)
--месяц
Set @IMonth=Cast(Ceiling(@Date/256) As Int)
Set @CMonth=Right('00'+Cast(@IMonth As VarChar(2)), 2)
Set @Date=@Date-(@IMonth*256)
--день
Set @IDay=Cast(Ceiling(@Date) As Int)
Set @CDay=Right('00'+Cast(@IDay As VarChar(2)), 2)
--дата полностью
if (@CYear=0)or(@CMonth=0)or(@CDay=0)
Set @CDate=Null
else
Set @CDate=@CYear+@CMonth+@CDay
Set @Res=Cast(@CDate As DateTime)
Return @Res
End

Добавлено: 04 мар 2006, 17:32
VIY
Может кто подсказать, как будет выглядеть SQL запрос делающий примерно следующее:
SELECT * FROM "PLPOR" where DATVIP='01.01.2006'
?

Галактика 7.12; PervasiveSQL 2000i.
не получается ни через Pervasive Control Center, ни через ODBC Дельфей7

Добавлено: 06 мар 2006, 06:15
IgorA
SELECT * FROM "PLPOR" where DATVIP='2006-01-01'

Сначала месяц, потом день yyyy-mm-dd