Delphi 3 и создание приложений баз данных


Значения типа даты


Столбцы типа DATE позволяют хранить значения даты в пределах от 01.01.0100 до 11.12.5941, а также, вместе с датой - и значения времени. Формат объявления:

<тип_данных> = DATE [<размерность_массива >]

Формат столбца типа DATE InterBase полностью совместим с типом TDateTime, объявленном в Delphi. Этот тип позволяет одновременно хранить в одной переменной дату и время.

Если ввод данных в столбец типа DATE производится из утилиты WISQL, значения даты должны указываться в формате InterBase. Согласно этому формату, значения даты состоят из номера дня (01-31), месяца (JAN-DEC) и года. Эти значения отделяются разделителями. Стандартным разделителем является символ '-', но принимаются и пробел ' ', правый слеш '/', точка '.'. Значения дат в InterBase должны лежать в диапазоне "1-JAN-100".." 11-DEC-5941".

Пример.

Запишем в столбец DATAP типа DATE результат выполнения функции Now, определенной в Delphi (Now возвращает текущие время и дату, установленные на компьютере). Затем в Label I.Caption поместим дату, а в Label2.Caption - время из столбца DATAP:

WITH Table1 do begin

Insert;

FieldByName('DATAP').Value := Now; //дата прихода товара

FieldByName('TOVAR').Value : 'Брус'; // товар

FieldByName('Kolvo').Value :- 10; // количество

Post;

Labell.Caption := DateToStr(Fields[0].Value);

Label2.Caption := TimeToStr(Fields[0].Value);



END;//with

Результат выполнения кода приведен на рис. 20.1.

Интерпретация формата представления значений типа даты зависит от настроек - программных или операционной системы компьютера. Рекомендую всякий раз при старте приложения программно переустанавливать формат даты к привычному нам российскому формату:

procedure TForm1.FormCreate(Sender: TObject) ;

begin

DateSeparator := '.';

ShortDateFormat := 'dd.mrn. yyyy' ;

ShortTimeFormat := 'hh:mm:ss';

end;

Таким образом можно игнорировать неопределенность текущих установок операционной системы на конкретном компьютере.

ЗАМЕЧАНИЕ.

В InterBase значения типа даты совместимы с рассматриваемыми ниже строковыми типами. Поэтому, если в SQL-операторах InterBase необходимо интерпретировать значения типа даты в строку, нет необходимости в приведении типов, например, можно так записать в символьное поле S1 значение типа даты (NOW возвращает текущие дату и время):

UPDATE SOMETABLE

SET S1 = "Дата отгрузки" || NOW) ;

Кроме того, присвоение значения полям типа дата также производится в символьном формате:

INSERT INTO SOMETABLE (DATA_PRIHODA, KOLVO)

VALUES("01-FEB-1997",100) ;



Содержание раздела