П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 178683 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 76363 раз(а).

Учебник HTML.
Просмотров 74497 раз(а).

Руководство по PHP5.
Просмотров 45487 раз(а).

Хостинг через призму DNS.
Просмотров 52482 раз(а).

Подборка текстов стандартных документов.
Просмотров 45522 раз(а).

Учебник PHP - Самоучитель
Просмотров 51737 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 52222 раз(а).

Внешние атаки...
Просмотров 42293 раз(а).

Учебник PHP.
Просмотров 37688 раз(а).

SSI в примерах.
Просмотров 28075 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 6. Справочник по языку MySQL
Пред.     След.

6.3. Функции, используемые в операторах SELECT и WHERE
6.3.5. Функции приведения типов

Функция CAST имеет следующий синтаксис:

CAST(expression AS type)

или

CONVERT(expression,type)

где аргумент type представляет один из типов:

  • BINARY

  • CHAR (Новшество в 4.0.6)

  • DATE

  • DATETIME

  • SIGNED {INTEGER}

  • TIME

  • UNSIGNED {INTEGER}

Функция CAST() соответствует синтаксису ANSI SQL99, а функция CONVERT() - синтаксису ODBC.

Данная функция приведения типов используется главным образом для создания столбца конкретного типа с помощью команды CREATE ... SELECT:

CREATE TABLE new_table SELECT CAST('2000-01-01' AS DATE);

Выражение CAST string AS BINARY эквивалентно BINARY string. CAST(expr AS CHAR считает что данное выражение есть строка в кодировке по умолчанию.

Для преобразования строки в числовую величину обычно не нужно ничего делать: просто используйте строку так, как будто это число:

mysql> SELECT 1+'1';
 -> 2

Если вы указываете номер в строковом контексте, номер будет автоматически преобразован к строке типа BINARY.

mysql> SELECT concat("hello you ",2);
 ->  "hello you 2"

MySQL поддерживает арифметические операции с 64-битовыми величинами - как со знаковыми, так и с беззнаковыми. Если используются числовые операции (такие как +) и один из операндов представлен в виде unsigned integer, то результат будет беззнаковым. Его можно переопределить, используя операторы приведения SIGNED и UNSIGNED, чтобы получить 64-битовое целое число со знаком или без знака соответственно.

mysql> SELECT CAST(1-2 AS UNSIGNED)
-> 18446744073709551615

mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED);
-> -1

Следует учитывать, что если один из операндов представлен величиной с плавающей точкой (в данном контексте DECIMAL() рассматривается как величина с плавающей точкой), результат также является величиной с плавающей точкой и не подчиняется вышеприведенному правилу приведения.

mysql> SELECT CAST(1 AS UNSIGNED) -2.0
-> -1.0

Если в арифметической операции используется строка, то результат преобразуется в число с плавающей точкой.

Функции CAST() и CONVERT() были добавлены в MySQL 4.0.2.

В MySQL 4.0 была изменены правила обработки беззнаковых величин, чтобы обеспечить более полную поддержку величин типа BIGINT. Если код необходимо использовать и для MySQL 4.0, и для версии 3.23 (в которой функция CAST, скорее всего, не будет работать), то можно, применив следующий трюк, получить при вычитании двух беззнаковых целочисленных столбцов результат со знаком:

SELECT (unsigned_column_1+0.0)-(unsigned_column_2+0.0);

Идея состоит в том, что перед выполнением вычитания данные столбцы приводятся к типу с плавающей точкой.

Если возникнут проблемы со столбцами типа UNSIGNED в старых приложениях MySQL при переносе их на MySQL 4.0, можно использовать параметр --sql-mode=NO_UNSIGNED_SUBTRACTION при запуске mysqld. Однако следует учитывать, что при этом теряется возможность эффективного использования столбцов типа UNSIGNED BIGINT.


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 5. Оптимизация в MySQL Начало Книги Глава 7. Типы таблиц MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru