数据库中主要使用的数据类型:字符,数字,日期(时间戳)

日期、字符、数字之间可以完成互相转换功能;

函数名称

描述

TO_CHAR(日期 | 数字 | 列,转换格式)

      • 将指定的数据按照指定的格式变为字符串型
      • 格式化当前的日期时间

SQL> SELECT SYSDATE,TO_CHAR(SYSDATE,'YY-MM-DD HH24:MI:SS') FROM DUAL;

SYSDATE            TO_CHAR(SYSDATE,'

------------------ -----------------

24-JUL-17          17-07-24 17:15:53

SELECT SYSDATE 当前系统时间 ,TO_CHAR(SYSDATE,'YYYY-MM-DD') 格式化日期 ,

TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') 格式化日期时间 ,

TO_CHAR(SYSDATE,'FMYYYY-MM-DD HH24:MI:SS') 去掉前导0的日期时间

FROM dual ;

使用FM可以取消前导0,但不建议去掉.

      • 使用其他方法格式化年、月、日

SELECT SYSDATE ,TO_CHAR(SYSDATE,'YEAR-MONTH-DY')

FROM dual ;

      • 查询出所有在每年2月份雇佣的雇员信息

SELECT * FROM emp WHERE TO_CHAR(hiredate,'MM')='02' ;

SELECT * FROM emp WHERE TO_CHAR(hiredate,'MM')=2 ;

      • 将每个雇员的雇佣日期进行格式化显示,要求所有的雇佣日期可以按照“年-月-日”的形式显示,也可以将雇佣的年、月、日拆开分别显示

SELECT   empno,ename,job,hiredate,

TO_CHAR(hiredate,'YYYY-MM-DD') 格式化雇佣日期, TO_CHAR(hiredate,'YYYY') 年 ,

TO_CHAR(hiredate,'MM') 月,TO_CHAR(hiredate,'DD') 日

FROM emp ;

      • 使用英文的日期格式表示出每个雇员的雇佣日期

SELECT empno ,ename , hiredate ,TO_CHAR(hiredate,'YEAR-MONTH-DY') FROM emp ;

TO_DATE(字符串 | 列,转换格式)

将指定字符串按照指定的格式变为DATE型

SELECT TO_DATE('1979-09-19','YYYY-MM-DD') FROM dual ;

TO_NUMBER(字符串 | 列)

      • 将指定的数据类型变为数字型

1、格式化数字:

      • 格式化数字显示

SELECT TO_CHAR(987654321.789,'999,999,999,999.99999') 格式化数字 ,

TO_CHAR(987654321.789,'000,000,000,000.00000') 格式化数字

FROM dual ;

      • 格式化货币显示

SELECT TO_CHAR(987654321.789,'L999,999,999,999.99999') 显示货币 ,

TO_CHAR(987654321.789,'$999,999,999,999.99999') 显示美元

FROM dual ;

2、字符串变为数字.

      • 使用TO_NUMBER()函数将字符串变为数字

SELECT TO_NUMBER('09') + TO_NUMBER('19') 加法计算 ,

TO_NUMBER('09') * TO_NUMBER('19') 乘法计算

FROM dual ;

      • 不利用TO_NUMBER()函数字符串也可以自动变为数字

SELECT '09' + '19' 加法计算 , '09' * '19' 乘法计算 FROM dual ;

TO_TIMESTAMP

      • 使用TO_TIMESTAMP()函数

SELECT    TO_TIMESTAMP('1981-09-27 18:07:10','YYYY-MM-DD HH24:MI:SS') datetime

FROM dual ;

日期格式化标记:

转换格式

描述

YYYY

完整的年份数字表示,年有四位,所以使用四个Y

Y,YYY

带逗号的年

YYY

年的后三位

YY

年的后两位

Y

年的最后一位

YEAR

年份的文字表示,直接表示四位的年

MONTH

月份的文字表示,直接表示两位的月

MM

用两位数字来表示月份,月有两位,所以使用两个M

DAY

天数的文字表示

DDD

表示一年里的天数(001 ~ 366)

DD

表示一月里的天数(01 ~ 31)

D

表示一周里的天数(1 ~ 7)

DY

用文字表示星期几

WW

表示一年里的周数

W

表示一月里的周数

HH

表示12小时制,小时是两位数字,使用两个H

HH24

表示24小时制

MI

表示分钟

SS

表示秒,秒是两位数字,使用两个S

SSSSS

午夜之后的秒数字表示(0 ~ 86399)

AM | PM(A.M. | P.M.)

表示上午或下午

FM

去掉查询后的前导0,该标记用于时间模板的后缀

数字格式化标识:

转换格式

描述

9

表示一位数字

0

显示前导0

$

将货币的符号显示为美圆符号

L

根据语言环境不同,自动选择货币符号

.

显示小数点

,

显示千位符

Using Conversion Functions

In some cases, the Oracle server receives data of one data type where it expects data of a different data type. When this happens, the Oracle server can automatically convert the data to the expected data type. This data type conversion can be done implicitly隐式 by the Oracle server or explicitly显式 by the user.

隐式

Implicit

Implicit Data Type Conversion

A VARCHAR2 or CHAR value can be implicitly converted to NUMBER or DATE type value by Oracle. Similarly, a NUMBER or DATA type value can be automatically converted to character data by Oracle server. Note that the impicit interconversion happens only when the character represents the a valid number or date type value respectively.

Implicit data type conversions work according to the rules explained in the following sides.

In expressions, the Oracle server can automatically convert the following:

在表达式中,一个字符串值能被隐式转换为数字或日期类型。

字符串到数字的转换只有当字符串表示一个合法的数字时才能成功.

From

To

VARCHAR2 or CHAR

NUMBER

VARCHAR2 or CHAR

DATE

NUMBER

VARCHAR2 or CHAR

DATE

VARCHAR2 or CHAR

显式

Explicit

Explicit Data Type Conversion

SQL Conversion functions are single row functions which are capable of typecasting column value, literal or an expression . TO_CHAR, TO_NUMBER and TO_DATE are the three functions which perform cross modification of data types.

Explicit data type conversions are performed by using the conversion functions.

Conversion functions convert a value from one data type to another.

Generally, the form of the function names follows the convention data type TO data type.

The first data type is the input data type and the second data type is the output.

显示数据类型转换通过转换函数执行。转换函数将一个值从一种类型转换成另一种类型.

Function

Purpose

TO_CHAR(number | date,[fmt],[nlsparams])

Converts a number or date value to a VARCHAR2 character string with the format model fmt.

fmt是格式模型,指定转换后的字符串的格式.

TO_NUMBER(char,[fmt],[nlsparams])

将字符串转换为数字

TO_DATE(char,[fmt],[nlsparams])

将字符转换为时间

SQL Fundamentals || Single-Row Functions || 转换函数 Conversion function的更多相关文章

  1. 转换函数conversion function

    类转换分为两个角度 转换自身为其他类型 把其他类型转换为自身 Example: 这里我们可以将b转换为class xxx 的类型(方式2),也可以将me转换为double,然后再讲结果转换为doubl ...

  2. SQL Fundamentals: Using Single-Row Functions to Customize Output使用单行函数自定义输出

    SQL Fundamentals || Oracle SQL语言 DUAL is a public table that you can use to view results from functi ...

  3. SQL Fundamentals: 子查询 || 行列转换(PIVOT,UNPIVOT,DECODE),设置数据层次(LEVEL...CONNECT BY)

    SQL Fundamentals || Oracle SQL语言 子查询(基础) 1.认识子查询 2.WHERE子句中使用子查询 3.在HAVING子句中使用子查询 4.在FROM子句中使用子查询 5 ...

  4. SQL Fundamentals || Single-Row Functions || 字符函数 character functions

    SQL Fundamentals || Oracle SQL语言   SQL Fundamentals: Using Single-Row Functions to Customize Output使 ...

  5. SQL Fundamentals || Single-Row Functions || 日期函数date functions

    SQL Fundamentals || Oracle SQL语言   SQL Fundamentals: Using Single-Row Functions to Customize Output使 ...

  6. SQL Fundamentals || Single-Row Functions || 数字函数number functions

    SQL Fundamentals || Oracle SQL语言 SQL Fundamentals: Using Single-Row Functions to Customize Output使用单 ...

  7. SQL Fundamentals || Single-Row Functions || 通用函数 General function || (NVL,NVL2,NULLIF,DECODE,CASE,COALESCE)

    SQL Fundamentals || Oracle SQL语言 SQL Fundamentals: Using Single-Row Functions to Customize Output使用单 ...

  8. SQL Fundamentals || Oracle SQL语言

    对于SQL语言,有两个组成部分: DML(data manipulation language) 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据 ...

  9. C++面向对象高级编程(六)转换函数与non-explicit one argument ctor

    技术在于交流.沟通,转载请注明出处并保持作品的完整性. 1.conversion function 转换函数 //1.转换函数 //conversion function //只要你认为合理 你可以任 ...

随机推荐

  1. C#------如何使用Swagger调试接口

    1.打开NuGet程序包 2.安装下面两个程序包 3.安装完后会出现SwaggerConfig.cs类,并修改里面的内容 代码: [assembly: PreApplicationStartMetho ...

  2. 手机APP支付--整合支付宝支付控件

    长话短说,本文根据支付宝官方说明文档,简单总结下,并且说明下开发过程碰到的问题以及该如何解决. 整合步骤: 1 登录商家服务网站,下载开发包,地址:https://b.alipay.com/order ...

  3. Python easyGUI 文件对比 覆盖保存

    #在35-3的基础上进行优化,当用户点击ok按钮的时候,对打开的文件进行检查是否修改.# 如果修改过,则提示覆盖保存.放弃保存.另存为并实现相应的功能 1 import easygui as g im ...

  4. Exception occurred while processing this request, check the log for more information!安装ActiveMq-5.14.1 配置安全验证报错解决

    安装ActiveMq-5.14.1  并配置了安全验证成功后,客户端也连接成功了.服务端也能通过http://IP:8161登录到控制台. 但是在点击队列,想要查看队列视图时报错,如下图: 查看日志发 ...

  5. SaltStack salt-ssh 用法

    以下在 master 操作: (1) 我们在安装部署 SaltStack 的时候,需要安装 salt 客户端,还要与 salt 服务端进行认证才能互相通信(2) 如果我们使用 salt-ssh 的方式 ...

  6. Java中过滤器和拦截器的区别

    1.拦截器是基于java反射机制的,而过滤器是基于函数回调的. 2.过滤器依赖于servlet容器,而拦截器不依赖于servlet容器. 3.拦截器只对action起作用,而过滤器几乎可以对所有请求起 ...

  7. Android井字游戏(二)游戏界面

    图片与代码可见书配套官网下载 1 棋盘 1.1  先将游戏界面所需的图片放于“drawable-xxhdpi”文件夹中,后缀xxhdpi表示超高密度. 然后将图片封装到drawable中一个名为til ...

  8. 【cs229-Lecture10】特征选择

    本节课要点: VC维: 模型选择算法 特征选择 vc维:个人还是不太理解.个人的感觉就是为核函数做理论依据,低维线性不可分时,映射到高维就可分,那么映射到多高呢?我把可分理解为“打散”. 参考的资料: ...

  9. sqlite的一个Unable to Open database file的坑爹错误

    今天,被sqlite的一个机制给坑了.本人用C语言写的cgi程序去访问sqlite数据库,读取没有问题,但是插入新纪录和更新数据就不行,在服务器上直接对数据库进行增删查改则没有任何问题.但浏览器上访问 ...

  10. c++ map使用问题【运行结果不一样】

    map经常把指针作为key,这种情况下. 我们经常会很自然的以为,如果要取元素时,会按照我们存的顺序拿到元素. 但是事实上不是这样的,因为map取得时候是按key的大小排序的,而如果用指针作为key, ...