Изучаем sql


SELECT DATEDIFF('20050622', '20050905')



Pdf көрінісі
бет134/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   130   131   132   133   134   135   136   137   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

SELECT DATEDIFF('20050622', '20050905');


Функции преобразования
151
++
| DATEDIFF('20050622', '20050905') |
++
| 75 |
++
В SQL Server тоже есть функция 
datediff()
, но более гибкая, чем
в MySQL. В ней можно задавать тип интервала (т. е. год, месяц,
день, час), а не только вычислять количество дней между двумя
датами. Вот как был бы выполнен предыдущий пример для SQL
Server:
SELECT DATEDIFF(DAY, '20050622',
'20050905')
Oracle Database позволяет определять число дней между двумя
датами простым вычитанием одной даты из другой.
Функции преобразования
Ранее в этой главе было показано, как использовать функцию 
cast()
для преобразования строки в значение типа 
datetime
. Хотя у всех сер
веров БД есть собственные функции преобразования данных из одного
типа в другой, я рекомендую использовать функцию 
cast()
, включен
ную в стандарт SQL:2003 и реализованную в MySQL, Oracle Database
и Microsoft SQL Server.
Применяя функцию 
cast()
, необходимо задать значение или выраже
ние, ключевое слово 
as
и тип, в который должно быть преобразовано
значение. Вот пример преобразования строки в целое:
mysql> 
SELECT CAST('1456328' AS SIGNED INTEGER);
++
| CAST('1456328' AS SIGNED INTEGER) |
++
| 1456328 |
++
1 row in set (0.01 sec)
При преобразовании строки в число функция 
cast()
попытается преоб
разовать всю строку слева направо. Если в строке встретиться любой
нечисловой символ, преобразование будет остановлено без формирова
ния ошибки. Рассмотрим следующий пример:
mysql> 
SELECT CAST('999ABC111' AS UNSIGNED INTEGER);
++
| CAST('999ABC111' AS UNSIGNED INTEGER) |
++
| 999 |
++
1 row in set (0.00 sec)


152

Достарыңызбен бөлісу:
1   ...   130   131   132   133   134   135   136   137   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет