📜  SQL |转换函数

📅  最后修改于: 2022-05-13 01:54:34.830000             🧑  作者: Mango

SQL |转换函数


在某些情况下,服务器使用一种类型的数据,而它需要不同数据类型的数据。当服务器可以自动将数据转换为预期的数据类型时,就会发生这种情况。这种数据类型转换可以由服务器隐式完成,也可以由用户显式完成。

隐式数据类型转换:

在这种类型的转换中,数据隐式地从一种类型转换为另一种类型(自行/自动)。

FromTo
VARCHAR2 or CHARNUMBER
VARCHAR2 or CHARDATE
DATEVARCHAR2
NUMBERVARCHAR2

    例子 :

  1. 询问:
    SELECT employee_id,first_name,salary
    FROM employees
    WHERE salary > 15000;

    输出 :

    Employee_IDFIRST_NAMESALARY
    100Steven24000
    101Neena17000
    102lex17000

  2. 询问:
    SELECT employee_id,first_name,salary
    FROM employees
    WHERE salary > '15000';

    输出 :

    Employee_IDFIRST_NAMESALARY
    100Steven24000
    101Neena17000
    102lex17000

    在这里,我们看到两个查询的输出结果相同,尽管第二个查询使用'15000'作为文本,但它会自动转换为int数据类型。

显式数据类型转换:

TO_CHAR函数:

TO_CHAR函数用于将数字或日期输入类型转换为具有格式模型的字符类型(可选)。
句法 :

TO_CHAR(number1, [format], [nls_parameter])

TO_CHAR函数与 Dates 一起使用:

句法 :

TO_CHAR(date, ’format_model’)

格式模型:

  • 必须用单引号括起来并且是大小写
    敏感的
  • 可以包含任何有效的日期格式元素
  • 有一个 fm 元素来删除填充的空白或
    抑制前导零
  • 用逗号与日期值隔开

例子 :

SELECT employee_id, TO_CHAR(hire_date, ’MM/YY’) Month_Hired
FROM employees
WHERE last_name = ’Higgins’;

输出 :

EMPLOYEE_IDMONTH_HIRED
20506/94

日期格式模型的元素:

YYYYFull year in Numbers
YEARYear spelled out
MMTwo digit value for month
MONTHFull name of the month
MONThree Letter abbreviation of the month
DYThree letter abbreviation of the day of the week
DAYFull Name of the of the week
DDNumeric day of the month

日期格式模型的元素:

日期格式元素 - 时间格式:
使用下表中列出的格式来显示时间信息和字面量,并将数字更改为拼写数字。

ELEMENTDESCRIPTION
AM or PMMeridian indicater
A.M. or P.M.Meridian indicater with periods
HH or HH12 or HH24Hour of day,or hour (1-12),or hour (0-23)
MIMinute 0-59
SSSecond 0-59
SSSSSSecond past Mid Night 0-86399

其他格式:

ELEMENTDESCRIPTION
/ . ,Punctuation is reproduced in the result
“of the”Quoted string is reproduced in the result

指定影响数字显示的后缀:

ELEMENTDESCRIPTION
THOrdinal Number (for example DDTH for 4TH
SPSpelled out number (for example DDSP for FOUR
SPTH or THSPspelled out ordinal numbers (for example DDSPTH for FOURTH

例子 :

SELECT last_name,
TO_CHAR(hire_date, ’fmDD Month YYYY’)
AS HIREDATE
FROM employees;

输出 :

LASTNAMEHIIREDATE
Austin25 January 2005
Shubham20 June 2004
Nishant15 January 1999
Ankit15 July 1995
Vanshika5 August 2004
Kusum10 June 1994
Faviet11 March 2005
King9 April 1996

TO_CHAR函数与 Numbers 一起使用:

句法 :

TO_CHAR(number, ’format_model’)

这些是您可以使用的一些格式元素
用 TO_CHAR函数显示一个数值
作为一个字符:

9Represent a number
0Forces a zero to be displayed
$places a floating dollar sign
LUses the floating local currency symbol
.Print a decimal point
,Prints a Thousand indicator

例子 :

SELECT TO_CHAR(salary, ’$99,999.00’) SALARY
FROM employees
WHERE last_name = ’Ernst’;

输出 :

SALARY
$5000

使用 TO_NUMBER 和 TO_DATE 函数:

使用TO_NUMBER函数将字符转换为数字字符串:

TO_NUMBER(char[, ’format_model’])

使用TO_DATE函数将字符转换为日期字符串:

TO_DATE(char[, ’format_model’])

这些函数有一个fx修饰符。此修饰符指定TO_DATE函数的字符参数和日期格式模型的精确匹配。
例子 :

SELECT last_name, hire_date
FROM employees
WHERE hire_date = TO_DATE(’May 24, 1999’, ’fxMonth DD, YYYY’);

输出 :

LASTNAMEHIREDATE
Kumar24-MAY-99