Функция преобразования типа

  • Часть 1
  • | 2
  • | 3

В тех случаях, когда Firebirdне может выполнить неявное преобразование типов, требуется выполнять явное преобразование с помощью функции CAST. Эта функция производит преобразование значения выражения, заданного первым аргументом, в тип, заданный вторым аргументом. Синтаксис функции:

CAST (<выражение> AS <типданных>).

В качестве типа данных нельзя указывать домены.

В большинстве случаев использование функции CAST не требуется, так как Firebird производит неявное преобразование типов данных. Например, сравнение столбца типа DATE с датой '12/31/2003' приведет к неявному преобразованию строкового литерала '12/31/2003' в тип данных DATE и следующий запрос является корректным:

SELECT * FROM Request WHERE IncomingDate > '01.10.2001';.

Можно использовать функцию CAST для сравнения столбцов с различными типами данных из одной и той же таблицы или из различных таблиц.

С помощью CAST можно выполнять преобразование из одного типа дата/время в другой. В табл. 3.3 представлены правила преобразования [18].

Таблица 3.3. Преобразования между типами дата/время

Исходный тип

В тип TIMESTAMP

В тип DATE

В тип TIME

TIMESTAMP

Недоступно

Да, преобразует дату, игнорируя время

Да, преобразует время, игнорируя дату

DATE

Да, время устанавливается в значение полуночи

Недоступно

Нет

TIME

Да, дате присваивается

значение

CURRENT_DATE

Нет

Недоступно

Нет

Нет

DATE+TIME    Да

Можно также преобразовывать правильно сформированную строку в тип «дата-время». Например, значение с типом даты из трех значений дня, месяца и года можно получить следующим образом:

CAST(DAY || '. ' || MONTH || '. ' || YEAR AS DATE), где DAY, MONTH и YEAR могут представлять собой константы либо столбцы таблицы, в которых содержится значение дня, месяца или года соответственно.

предыдущаяследующая