Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];




Вниз

Вроде простой вопрос, а ответа никто не знает! 


Ser_Grey   (2002-02-01 09:08) [0]

Как получить из даты фората "dd.mm.yyyy hh.mm.ss" Дату формата: "dd.mm.yyyy"?
Я пытаюсь так:
udfSub_Str(Date,1,11), но при этом удаляется первая буква если там "0"?
Потом пытался создвть свою функцию:
Function My_Copy(My_Date: PChar) : PChar;
var s: string;
Begin
s:= Copy(My_Date,1,11);
Result:=@s[1];
end;
Резутьтат тот же.
Может кто подскажет другой способ?



Alexandr   (2002-02-01 09:25) [1]

UDF
F_STRIPTIME
из FreeUDFLib эту библиотеку UDF можно наити на ib.demo.ru

благодарностей не надо.



Sergey13   (2002-02-01 09:33) [2]

А если попробовать через DecodeDate. Вот пример их Help

This example uses a button and two labels on a form. When the user clicks the button, the current date and time are reported in the captions of the two labels.

procedure TForm1.Button1Click(Sender: TObject);

var
Present: TDateTime;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
Label1.Caption := "Today is Day " + IntToStr(Day) + " of Month "
+ IntToStr(Month) + " of Year " + IntToStr(Year);
DecodeTime(Present, Hour, Min, Sec, MSec);
Label2.Caption := "The time is Minute " + IntToStr(Min) + " of Hour "
+ IntToStr(Hour);
end;



Alexandr   (2002-02-01 09:36) [3]

а если на дельфи, то достаточно округлить значение даты+время, останется только дата.



ser_Grey   (2002-02-01 10:36) [4]

ПРоблема в том, что надо дату полностью получить, т.е. должно быть так: "01.11.2001", а не так: "1.11.2001"
Даже Copy() в Delphi возвращает вторым способом! А там ведь PChar! Неужели делфи проверят PChar в Copy на наличие "0" в первом символе?
Александр, эта библиотеку еще вчера качал, но она даже не компилится! Может только у меня?



AlexSV   (2002-02-01 10:46) [5]

Может быть так (не уверен что понял правильно вопрос):

procedure ...
var
vDate: TDateTime;
sDate: string;
begin
vDate := now;
sDate := DateToStr(now);
end;



panov   (2002-02-01 11:04) [6]

Так из какого формата все-таки преобразовать надо?
В формате "dd.mm.yyyy hh:nn:ss" не может не быть лидирующего нуля после преобразования TDateTime к String.
Соответственно, и Copy сработает правильно, однозначно.
Если ты строку получаешь не функцией FormatDateTime, тогда как?
Долго еще гадать будем?



DenK_vrtz   (2002-02-01 11:10) [7]

Привет!
Может я не понял суть проблемы, но если на Delphi, то через
FormatDateTime("dd.mm.yyyy",Дата, которую нужно привести к формату). И у дня и у месяца впереди будут нули, если значения одночисловые.



Ser_Grey   (2002-02-01 11:12) [8]

Все, что с делфей связанно, было просто UDF для IB базы.
База, оказывается просто в Date не хранит первый символ, если он="0".
Всем спасибо окончательное решение было:
s:=Copy(Date,1,11)+#0;
if Pos("-",s)=2 Then
S:= "0"+s;
Result:=@s[1];
Подсказали :) Сам я никак.



Alexandr   (2002-02-01 12:59) [9]

2Serg_Grey:
ну вы, блин, даете.
Нет слов.

1) База в date не хранит строковое представление, а хранит в float.
2) в UDF Rfunc есть функция для форматирования даты.
3) То, что FreeUDFLib не компилируется это проблема твоих кривых рук, впрочем что и так очевидно в твоих действиях.

P.S. Злой я сегодня




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.013 c
4-90712           Prof!                 2002-01-02 08:49  2002.02.28  
Help me!!!!!!! (DLL)


1-90608           Геральт               2002-02-12 18:56  2002.02.28  
Справка по RxLib


3-90482           Pavel_s               2002-02-02 16:55  2002.02.28  
Проблема с Update


4-90697           Anatoliy              2001-12-29 11:07  2002.02.28  
Уважаемые мастера, помогите пожалуйста, очень нужно.


3-90478           Garmahis              2002-01-30 20:00  2002.02.28  
Оператор UPDATE в SQL