Oracle数据库:oracle数据类型转换to_char()日期和数字转字符,to_number()字符转数字,to_date()字符转日期函数
Oracle数据库:oracle数据类型转换to_char()日期和数字转字符,to_number()字符转数字,to_date()字符转日期函数
2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开
测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库
这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!
oracle系列文章:
【1】Oracle数据库:啥是oracle数据库?你为啥要学oracle?
【2】Oracle数据库:oracle 11g安装教程,已安装好的oracle各个文件夹的作用,oracle用户权限怎么样
【3】Oracle数据库:oracle启动,oracle客户端工具plsql安装教程和使用方法
【4】Oracle数据库:创建表空间,创建新用户,给用户分配对象、角色和系统权限,登录新用户建表
【5】Oracle数据库:链接配置,包括sqlnet.ora里面的transnames.ora配置数据库标识符SID,listener暂时简单了解
【6】Oracle数据库:net configureation assistant工具配置监听listener,配置本地网络访问服务器上的数据库
【7】Oracle数据库:oracle字符类型、数字类型、创建表表名的命名规则
【8】Oracle数据库:约束条件:主键约束、唯一约束、检查约束、非空约束、外键约束、默认值填写
【9】Oracle数据库:表的关系:一对多,一对一,多对多,一一继承和修改的关系,表不是重点,重点是数据和约束关系
【10】Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作
【11】Oracle数据库:约束行限制where语句,判断条件,比较条件,字符串日期格式,in,like,escape,null语句
【12】Oracle数据库:逻辑运算and,or,not和各种运算的优先级控制
【13】Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例
【14】Oracle数据库:oracle函数,单行函数,多行函数,upper,lower,initcap,字符串函数
【15】Oracle数据库:数字函数,日期函数,round,trunc,mod,months_between,add_months,next_day,last_day,sysdate
oracle数据类型转换
日期,其实,已经把它隐式转换了
我们给了日月年
hire_date实际上是日期date类型
我们给了字符串,实际上oracle会自动转
SQL> select employee_id from employees where employee_id='206';
EMPLOYEE_ID
-----------
206
SQL> select employee_id from employees where employee_id=206;
EMPLOYEE_ID
-----------
206
你看我们给了字符串,或者数字
它都会自动给你转化为number类型的
这就是隐式类型的转换很舒服——但是写代码千万不要用隐式转换
但是写代码千万不要用隐式转换
但是写代码千万不要用隐式转换
但是写代码千万不要用隐式转换
但是写代码千万不要用隐式转换
但是写代码千万不要用隐式转换
但是写代码千万不要用隐式转换
为什么待会讲!!!
这里要是表达式赋值转换,是只能单向的
不支持反过来
所以,千万不要用隐式转换!!!!!
所以,千万不要用隐式转换!!!!!
所以,千万不要用隐式转换!!!!!
所以,千万不要用隐式转换!!!!!
知道就行了
显示数据类型转换
数字和日期转字符
我猜有第二个参数,就是日期格式
没有第二个参数,那就是数字
month月全名
mon月简写
mm月数字
dy星期几的简写
day星期几
dd是一个月的哪天,号数
SQL> select to_char(sysdate,'yyyy') from dual;
TO_CHAR(SYSDATE,'YYYY')
-----------------------
2022
SQL> select to_char(sysdate,'year') from dual;
TO_CHAR(SYSDATE,'YEAR')
------------------------------------------
twenty twenty-two
SQL> select to_char(sysdate,'mm') from dual;
TO_CHAR(SYSDATE,'MM')
---------------------
10
SQL> select to_char(sysdate,'month') from dual;
TO_CHAR(SYSDATE,'MONTH')
------------------------
10月
SQL> select to_char(sysdate,'mon') from dual;
TO_CHAR(SYSDATE,'MON')
----------------------
10月
SQL> select to_char(sysdate,'dy') from dual;
TO_CHAR(SYSDATE,'DY')
---------------------
星期二
SQL> select to_char(sysdate,'day') from dual;
TO_CHAR(SYSDATE,'DAY')
----------------------
星期二
SQL> select to_char(sysdate,'dd') from dual;
TO_CHAR(SYSDATE,'DD')
---------------------
25
这都号好说
等等,各种骚
SQL> select to_char(sysdate,'AM') from dual;
TO_CHAR(SYSDATE,'AM')
---------------------
下午
SQL> select to_char(sysdate,'HH') from dual;
TO_CHAR(SYSDATE,'HH')
---------------------
06
SQL> select to_char(sysdate,'HH12') from dual;
TO_CHAR(SYSDATE,'HH12')
-----------------------
06
SQL> select to_char(sysdate,'MI') from dual;
TO_CHAR(SYSDATE,'MI')
---------------------
49
SQL> select to_char(sysdate,'ss') from dual;
TO_CHAR(SYSDATE,'SS')
---------------------
23
SQL> select to_char(sysdate,'HH:MI::ss AM') from dual;
TO_CHAR(SYSDATE,'HH:MI::SSAM')
------------------------------
06:51::16 下午
你可以给常量串,做拼接
10月25日
SQL> select to_char(sysdate,'dd "of" mm') from dual;
TO_CHAR(SYSDATE,'DD"OF"MM')
---------------------------
25 of 10
还能拼数字前缀
dd天
spth
spell 出th
号
SQL> select to_char(sysdate,'ddspth') from dual;
TO_CHAR(SYSDATE,'DDSPTH')
-------------------------
twenty-fifth
SQL> select to_char(sysdate,'ddth') from dual;
TO_CHAR(SYSDATE,'DDTH')
-----------------------
25th
SQL> select to_char(sysdate,'ddsp') from dual;
TO_CHAR(SYSDATE,'DDSP')
-----------------------
twenty-five
25号的各种写法
SQL> select to_char(sysdate,'yyyy"年"mm"月"dd"日"') from dual;
TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日"')
------------------------------------
2022年10月25日
SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DD')
-----------------------------
2022-10-25
没有小时分钟秒,那就是默认12:00
SQL> select last_name, to_char(hire_date,'yyyy"年"mm"月"dd"日"hh:mi:ss am') from employees;
LAST_NAME TO_CHAR(HIRE_DATE,'YYYY"年"MM"月"DD"日"HH:MI:SSAM')
------------------------- ------------------------------------------------
King 2003年06月17日12:00:00 上午
Kochhar 2005年09月21日12:00:00 上午
De Haan 2001年01月13日12:00:00 上午
Hunold 2006年01月03日12:00:00 上午
Ernst 2007年05月21日12:00:00 上午
Austin 2005年06月25日12:00:00 上午
Pataballa 2006年02月05日12:00:00 上午
反正你要转的各种格式,要熟悉,用法写好就行了
挺爽的
希望考试别考太复杂了
to_char()将数字转化为字符串
可能需要加千位符号,
这时候就需要将数字,放入字符
关键就是第二个模板参数
看样例
9是占位
SQL> select to_char(346.555,'999,999.99') from dual;
TO_CHAR(346.555,'999,999.99')
-----------------------------
346.56
格式的长度,可以大于你真实数字的长度
但是模板不够长,就gg
SQL> select to_char(123456346.555,'999,999.99') from dual;
TO_CHAR(123456346.555,'999,999.99')
-----------------------------------
###########
所以格式不匹配就gg
最好模板格式的长度要大于等于实际数字的长度
懂?
SQL> select to_char(56346.555,'099,999.99') from dual;
TO_CHAR(56346.555,'099,999.99')
-------------------------------
056,346.56
如果是0,就是强制转0
SQL> select to_char(56346.555,'$99,999.99') from dual;
TO_CHAR(56346.555,'$99,999.99')
-------------------------------
$56,346.56
SQL> select to_char(56346.555,'L99,999.99') from dual;
TO_CHAR(56346.555,'L99,999.99')
-------------------------------
¥56,346.56
加美元和人民币
FM是去掉前后空格
SQL> select to_char(46.555,'99,999.99') from dual;
TO_CHAR(46.555,'99,999.99')
---------------------------
46.56
SQL> select to_char(46.555,'fm99,999.99') from dual;
TO_CHAR(46.555,'FM99,999.99')
-----------------------------
46.56
前面的控制gg了
SQL> select last_name,to_char(salary,'fm999,999,999.00') from employees where last_name='Whalen';
LAST_NAME TO_CHAR(SALARY,'FM999,999,999.00')
------------------------- ----------------------------------
Whalen 4,400.00
加美元
SQL> select last_name,to_char(salary,'fm$999,999,999.00') from employees where last_name='Whalen';
LAST_NAME TO_CHAR(SALARY,'FM$999,999,999.00')
------------------------- -----------------------------------
Whalen $4,400.00
很容易的
字符转数字
格式和上面的数字转字符串一样
不过就是数字而已
SQL> select to_number('$456.84','$999.99') from dual;
TO_NUMBER('$456.84','$999.99')
------------------------------
456.84
后面的格式要转化的字符的格式
前面的格式就是$999.99的格式
长度也是要长的
当年你把456.84转字符的时候用的就是这个格式:$999.99
逆转也是一样的道理
这些比java和Python复杂,但是本质就一样
SQL> select to_number('$34346.84','$99999.99') from dual;
TO_NUMBER('$34346.84','$99999.99')
----------------------------------
34346.84
很简单的
字符转日期
日期转字符
字符转日期
格式一样
SQL> select to_date('2022','fmyyyy') from dual;
TO_DATE('2022','FMYYYY')
------------------------
2022/10/1
SQL> select to_date('2022-03-09','fmyyyy-mm-dd') from dual;
TO_DATE('2022-03-09','FMYYYY-MM-DD')
------------------------------------
2022/3/9
SQL> select to_date('2022-03-09 11:57','fmyyyy-mm-dd hh:mi') from dual;
TO_DATE('2022-03-0911:57','FMYYYY-MM-DDHH:MI')
----------------------------------------------
2022/3/9 11:57:00
字符串转日期,返回就是date类型
SQL> select to_date('2022-03-09 11:30','fmyyyy-mm-dd hh:mi') from dual;
TO_DATE('2022-03-0911:30','FMYYYY-MM-DDHH:MI')
----------------------------------------------
2022/3/9 11:30:00
灰常容易了
SQL> select to_date('2022年3月9日 11点30分','fmyyyy"年"mm"月"dd"日"hh"点"mi"分"') from dual;
TO_DATE('2022年3月9日11点30分','FMYYYY"年"MM"月"DD"日"HH"点"MI"分"')
----------------------------------------------------------
2022/3/9 11:30:00
汉字要用点
不能用时
挺烦的这
还是上面那种不用汉字的格式舒服
总结
提示:重要经验:
1)
2)学好oracle,即使经济寒冬,整个测开offer绝对不是问题!同时也是你考公网络警察的必经之路。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。
相关文章
- Oracle数据库使用出现错误-状态: 失败 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- Oracle数据库安装图文操作步骤
- poi操作oracle数据库导出excel文件2
- Oracle数据库基本概念理解(3)
- Oracle数据库基本概念理解(1)
- Oracle数据库基本概念理解(1)
- oracle expdp/impdp 用法详解
- oracle数据库复习(1)
- oracle数据库执行脚本常用命令总结
- oracle 11g 数据库密码大小写敏感性更改
- RHEL 4.7下的Oracle 10g RAC到单实例的单向同步
- Oracle 11gR2学习之二(创建数据库及OEM管理篇)
- Oracle数据库中违反唯一约束的处理
- 利用dblink实现oracle对oracle数据库的同步
- Oracle不带传出参数的存储过程创建及调用
- Oracle 数据库(表)的逻辑备份与恢复
- Oracle中的Exists、In、ANY、ALL
- atitit.sql server2008导出导入数据库大的表格文件... oracle mysql
- 測试oracle 11g cluster 中OLR的重要性
- oracle之单行函数
- ORACLE 数据库表空间的管理以及IM列式存储