Замечания по выпуску


|42.8 Совместимость типов GRAPHIC и DATE/TIME/TIMESTAMP

|В следующих разделах упоминания значений даты и времени, представленных в |виде "character string" (символьной строки), этот термин заменен на "строчное" |представление. DB2 теперь поддерживает (только для баз данных Unicode) |представления значений даты и времени в виде "графической строки".

|42.8.1 Строчные представления значений даты и времени

|

|Значения с типом данных DATE, TIME или TIMESTAMP представляются во |внутренней форме, прозрачной для пользователя. Однако значения даты, |времени и отметки времени могут также представляться строками. Это |удобно, поскольку нет констант или переменных с типами данных DATE, TIME или |TIMESTAMP. Чтобы можно было получить значение даты и времени, его нужно |сначала присвоить строчной переменной. Для преобразования значения даты |и времени в строчное представление можно использовать функцию CHAR или функцию |GRAPHIC (только для баз данных Unicode). Для этого строчного |представления обычно используется формат даты и времени по умолчанию для кода |страны/региона базы данных (если этот формат не переопределен с помощью опции |DATETIME при прекомпиляции или связывании этой программы с базой |данных).

|Строки большой длины (значение LONG VARCHAR или LONG VARGRAPHIC), |независимо от их реальной длины, нельзя использоваться для представления |значения даты и времени (SQLSTATE 42884).

|Когда допустимое строчное представление значения даты и времени |используется в операции с внутренним значением даты и времени, перед |выполнением операции это представление преобразуется во внутренний формат |даты, времени или отметки времени.

|Строки даты, времени и отметки времени должны содержать только символы и |цифры.

|42.8.1.1 Строки значений даты, времени и отметки времени

|Определения этих терминов немного изменены. Упоминания представлений |"character string" (символьной строки) изменены на "строчные" |представления.

|42.8.2 Преобразование типов данных

|Типы данных DATE, TIME и TIMESTAMP могут теперь преобразовываться в типы |GRAPHIC и VARGRAPHIC. Типы данных GRAPHIC и VARGRAPHIC могут теперь |преобразовываться в типы DATE, TIME и TIMESTAMP. Поддержка графических |строк доступна только для баз данных Unicode.

|42.8.3 Присваивания и сравнения

|Теперь графические строки и значения DATE, TIME и TIMESTAMP совместимы по |типам данных в операциях присваивания и сравнения. Поддержка |графических строк доступна только для баз данных Unicode.

|42.8.4 Присваивание значений даты и времени

|

|Основное правило для присваивания значений даты и времени: значение |типа DATE, TIME или TIMESTAMP может присваиваться только столбцу с таким же |типом данных (DATE, TIME или TIMESTAMP) или строчной переменной или столбцу |строчного типа фиксированной или переменной длины. Такое значение |нельзя присваивать переменной или столбцу типа LONG VARCHAR, CLOB, LONG |VARGRAPHIC, DBCLOB или BLOB. | |

|При присваивании значения даты и времени строчной переменной или строчному |столбцу автоматически выполняется преобразование значения в строчное |представление. Ни из одной части значения даты, времени или отметки |времени не удаляются ведущие нули. Требуемая длина строки назначения |может быть разной в зависимости от формата строчного представления. |Если длина строки назначения больше необходимой и это строка фиксированной |длины, значение дополняется справа пробелами. Если длина строки |назначения меньше необходимой, результат зависит от типа значения даты и |времени и от типа строки назначения.

|Если значение присваивается переменной хоста, применяются следующие |правила: |

|42.8.5 DATE

| | |
|>>-DATE--(--выражение--)---------------------------------------><
| 
| 

|Схема - SYSIBM.

|Функция DATE преобразует данное значение в значение типа date |(дата).

|Ее аргумент должен быть датой, отметкой времени, положительным целым |числом, не превышающим 3652059, правильным строчным представлением даты или |отметки времени или строкой длины 7, тип данных которой не LONG VARCHAR, CLOB, |LONG VARGRAPHIC, DBCLOB или BLOB.

|Только базы данных Unicode поддерживают представления значений даты и |отметки времени в виде графических строк.

|Если аргумент - строка длиной 7, эта строка должна представлять допустимую |дату в формате ггггддд, где гггг - цифры, обозначающие год, |а ддд - цифры, задающие число от 001 до 366, обозначающее день |года.

|Результат этой функции - значение даты. Если аргумент может быть |пустым, результат может быть пустым; если аргумент пустой, результатом |будет пустое значение.

|Другие правила зависят от типа данных аргумента: |

|Примеры:

|Пусть столбец RECEIVED (его тип - отметка времени) содержит внутреннее |представление значения |'1988-12-25-17.12.30.000000'. |

|42.8.6 GRAPHIC

| | |
|>>-GRAPHIC--(--графическое-выражение--+----------------+--)----><
|                                      '-,--целое-число-'
| 
| 

|Схема - SYSIBM.

|Функция GRAPHIC возвращает графическое представление (тип GRAPHIC) для |значения типа графическая строка или значения даты и времени. |

|графическое-выражение
|Выражение, возвращающее значение типа графическая |строка.

|целое-число
|Целое значение, задающее атрибут длины выходного типа данных |GRAPHIC. Значение должно находиться в диапазоне от 1 до 127. |Если целое-число не задано, длина результата совпадает с длиной |первого аргумента. |

|Результат функции - значение типа GRAPHIC. Если аргумент может быть |пустым, результат может быть пустым; если аргумент пустой, результатом |будет пустое значение.

|Преобразование даты и времени в тип Graphic:

|>>-GRAPHIC--(--выражение-даты-и-времени--+--------------+--)---><
|                                         '-,--+-ISO---+-'
|                                              +-USA---+
|                                              +-EUR---+
|                                              +-JIS---+
|                                              '-LOCAL-'
| 
| 
|

|Преобразование даты и времени в тип Graphic
|

|выражение-даты-и-времени
|Выражение одного из следующих трех типов данных |

|дата
|Результат - представление значения даты в виде графической строки, в |формате, задаваемом вторым аргументом. Длина результата - 10. |Если второй аргумент задан, но содержит недопустимое значение, возникает |ошибка (SQLSTATE 42703).

|время
|Результат - представление значения времени в виде графической строки, в |формате, задаваемом вторым аргументом. Длина результата - 8. |Если второй аргумент задан, но содержит недопустимое значение, возникает |ошибка (SQLSTATE 42703).

|отметка времени
|Второй аргумент не применим и не должен задаваться (SQLSTATE |42815). Результат - представление значения отметки времени в виде |графической строки. Длина результата - 26. |

|В качестве кодовой страницы для этой строки используется кодовая страница |базы данных на сервере прикладных программ. |

|

|42.8.7 TIME

| | | | | |
|>>-TIME--(--выражение--)---------------------------------------><
| 
| 

|Схема - SYSIBM.

|Функция TIME преобразует данное значение в значение типа time |(время).

|Ее аргумент должен быть временем, отметкой времени или правильным строчным |представлением времени или отметки времени, тип данных которого не LONG |VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB или BLOB.

|Только базы данных Unicode поддерживают представления значений времени и |отметки времени в виде графических строк.

|Результат этой функции - значение времени. Если аргумент может быть |пустым, результат может быть пустым; если аргумент пустой, результатом |будет пустое значение.

|Другие правила зависят от типа данных аргумента: |

|Пример: |

|42.8.8 TIMESTAMP

| | | | | |
|>>-TIMESTAMP--(--выражение--+------------+--)------------------><
|                            '-,выражение-'
| 
| 

|Схема - SYSIBM.

|Функция TIMESTAMP возвращает значение отметки времени, полученное из |входного значения или пары значений.

|Только базы данных Unicode поддерживают представления значений даты, |времени и отметки времени в виде графических строк.

|Правила для аргументов зависят от того, задан ли второй аргумент. |

|Результат этой функции - значение отметки времени. Если один из |аргументов может быть пустым, результат может быть пустым; если |какой-либо из аргументов пустой, результатом будет пустое значение.

|Другие правила зависят от того, задан ли второй аргумент. |

|Пример: |

|42.8.9 VARGRAPHIC

| | | | | | | |

|Преобразование символьной строки в тип Vargraphic:

|>>-VARGRAPHIC--(--выражение-символьной-строки--)---------------><
| 
| 

|Преобразование даты и времени в тип Vargraphic:

|>>-VARGRAPHIC--(--выражение-даты-и-времени--)------------------><
| 
| 

|Преобразование типа Graphic в тип Vargraphic:

|>>-VARGRAPHIC--(--выражение-графической-строки------------------>
| 
|>--+----------------+--)---------------------------------------><
|   '-,--целое-число-'
| 
| 

|Схема - SYSIBM.

|Функция VARGRAPHIC возвращает представление в виде графической строки |для: |

|Результат этой функции - графическая строка переменной длины (тип данных |VARGRAPHIC). Если первый аргумент может быть пустым, результат может |быть пустым; если первый аргумент пустой, результатом будет пустое |значение.

|Преобразование символьной строки в тип Vargraphic |

|выражение-символьной-строки
|Выражение, значение которого должно иметь тип данных символьная строка, но |не LONG VARCHAR или CLOB, а максимальная длина не должна превышать 16336 |байт. |

|Атрибут длины результата равен атрибуту длины этого аргумента.

|Обозначим значение выражение-символьной-строки как S. |Каждый однобайтный символ в S преобразуется в результате в его эквивалентное |двухбайтное представление или в двухбайтный заменяющий символ; все |двухбайтные символы в S переносятся без изменений. Если первый байт |двухбайтного символа оказывается последним байтом S, он преобразуется в |двухбайтный заменяющий символ. Последовательный порядок символов в S |остается неизменным.

|Другие особенности преобразования. |

|Преобразование даты и времени в тип Vargraphic |

|выражение-даты-и-времени
|Выражение, значение которого должно иметь тип данных DATE, TIME или |TIMESTAMP. |

|Преобразование типа Graphic в тип Vargraphic |

|выражение-графической-строки
|Выражение, возвращающее значение типа графическая строка.

|целое-число
|Атрибут длины для полученной в результате графической строки переменной |длины. Это значение должно быть в диапазоне от 0 до 16336. Если |этот аргумент не задан, длина результата совпадает с длиной первого |аргумента. |

|Если длина значения выражения-графической-строки больше атрибута |длины результата, выполняется усечение и возвращается предупреждение (SQLSTATE |01004); предупреждение не возвращается, если все усеченные пробелы были |пробелами или выражение-графической-строки было длинной строкой (LONG |VARGRAPHIC или DBCLOB).


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]