Oracle日期格式转换,tochar(),todate()
本文主要介绍Oracle中的日期转换。
1. 日期转化为字符串 (以2016年10月20日为例)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') strDateTime from dual; --获取年-月-日 时:分:秒 --显示结果为:2016-10-20 12:35:21 select to_char(sysdate,'yyyymmdd hh24:mi:ss') strDateTime from dual; --获取年月日 时:分:秒 --显示结果为:20161020 13:39:25 select to_char(sysdate,'yyyymmdd') strDateTime from dual; --获取年月日 --显示结果为:20161020 select to_char(sysdate,'yyyy') strYear from dual; --获取年 --显示结果为:2016 select to_char(sysdate,'mm') strMonth from dual; --获取月 --显示结果为:10 select to_char(sysdate,'dd') strDay from dual; --获取日 --显示结果为:20 select to_char(sysdate,'hh24') strHour from dual; --获取时 --显示结果为:13 select to_char(sysdate,'mi') strMinute from dual; --获取分 --显示结果为:46 select to_char(sysdate,'ss') strSecond from dual; --获取秒 --显示结果为:43
2. 字符串和时间互转:to_date()
to_date(‘A','B')的重点是前后的A,B格式要一样,或者A不能比B多字符,如果A有字符,B必须也要有,或者有代替的其他字符。
例如
select to_date('2012-10-20','yyyymmdd') from dual
前面比后面的格式多了" - "符号,就会报错。
ORA:无效的月份
但是如果前面没有符号,后面有符号,如下面的格式比前面多了" - “符号,依然能输出:
select to_date('20051225,132559','yyyy-mm-dd,hh24:mi:ss') from dual;
输出结果:
::
只要格式一样就能输出date类型的格式。
如:
','yyyymmdd') from dual
输出结果:
再比如:
select to_date('2012-10-20','yyyy-mm-dd') from dual
输出结果:
再比如:
select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss') from dual;
输出结果:
::
如果A有字符,B必须也要有,或者有代替的字符
select to_date('2010-10-20 13:23:44','yyyy/mm/dd hh24:mi:ss') dateTime from dual;
select to_date('2005:12:25','yyyy-mm-dd,hh24:mi:ss') from dual;
select to_date('2005/12/25','yyyy-mm-dd,hh24:mi:ss') from dual;
以上的几个公式中,A都有字符” - " 和 “ :”,但是后面的B用字符“ / ” 代替。同样输出同样的结果:
::
当省略HH、MI和SS对应的输入参数时,Oracle使用0作为DEFAULT值。如果输入的日期数据忽略时间部分,Oracle会将时、分、秒部分都置为0,也就是说会取整到日。如:
select to_date('2007-06-12 ', 'yyyy-mm-dd hh24:mi:ss') from dual;
输出:
同样,忽略了DD参数,Oracle会采用1作为日的默认值,也就是说会取整到月。
select to_date('2007-06 ', 'yyyy-mm hh24:mi:ss') from dual;
输出:
但是,不要被这种“惯性”所迷惑,如果忽略MM参数,Oracle并不会取整到年,取整到当前月。
注意:
1.在使用Oracle的to_date函数来做日期转换时,可能会直觉地采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
2.另要以24小时的形式显示出来要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟 select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份
如果按照下面的例子写,会报错:ORA-01849:小时值必须介于1和12之间。(因为其中的hh是12进制,没有13所以报错)
select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh:mi:ss') from dual;
3. 查询某天是星期几
select to_char(to_date('2012-10-20','yyyy-mm-dd'),'day') strDay from dual;
显示结果:星期六
select to_char(to_date('2012-10-20','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = English') strDay from dual;
显示结果:saturday
4. 两个日期间的天数
','yyyymmdd')) strTime from dual; --其中sysdate=2016/10/20 17:10:51 --显示结果:10
5. 时间为null的用法
select to_date(null) from dual;
6.月份差
select months_between(date'2014-04-23',date'2013-04-23') days from dual;
Oracle日期格式转换,tochar(),todate()的更多相关文章
- oracle中to_date详细用法示例(oracle日期格式转换)
这篇文章主要介绍了oracle中to_date详细用法示例,包括期和字符转换函数用法.字符串和时间互转.求某天是星期几.两个日期间的天数.月份差等用法 TO_DATE格式(以时间:2007-11-02 ...
- oracle日期格式转换 to_date()
与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date(''2 ...
- Oracle日期格式转换
本文主要介绍Oracle中的日期转换. 1. 日期转化为字符串 (以2016年10月20日为例) select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') st ...
- oracle 日期格式
oracle 日期格式 to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错. 即按照第二个参数的格式解释第一个参数. ...
- oracle 日期格式操作
原文转自:http://hi.baidu.com/gzfvb/blog/item/5062b7f008eb70a8a50f5206.html Oracle日期格式: to_date(" ...
- 日期格式转换 java 2016-09-03T00:00:00.000+08:00
/** * 日期格式转换yyyy-MM-dd'T'HH:mm:ss.SSSXXX (yyyy-MM-dd'T'HH:mm:ss.SSSZ) TO yyyy-MM-dd HH:mm:ss * @ ...
- SpringMVC与MyBatis整合之日期格式转换
在上一篇博客<SpringMVC与MyBatis整合(一)——查询人员列表>中遗留了日期格式转换的问题,在这篇记录解决过程. 对于controller形参中pojo对象,如果属性中有日期类 ...
- Python 日期格式转换
经常需要爬取网站上的时间信息,不同的网站又有不同的日期显示方式.而我需要将日期格式转化为一种特定的格式,所以为了简便和学习,记录下各种不同的日期格式转换. 日期格式化符号: %y :两位数的年份表示( ...
- 在SQL Server中 获取日期、日期格式转换
--常用日期转换参数: PRINT CONVERT(varchar, getdate(), 120 ) 2016-07-20 16:09:01 PRINT replace(replace(replac ...
随机推荐
- python基础之函数
python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
- php实现设计模式之 工厂方法模式
<?php /* * *工厂方法模式,创建型模式 定义一个用于创建对象的工厂接口,让子类决定实例化哪一个类.Factory Method使用一个类的实例化延迟到其子类 * * 四个角色: * 工 ...
- SharePoint 2013 版本功能对比
前言:在SharePoint使用中,经常纠结于版本问题,SharePoint 2013主要有免费的Foundation和收费的标准版.企业版三个版本,他们之间的功能上是不一样的,找了一些资料才发现下面 ...
- android 很详细的序列化过程Parcelable
直接上代码:注释都写的很清楚了. public class Entry implements Parcelable{ public int userID; public String username ...
- 设置 TabBarItem 选中时的图片及文字颜色
TabBarController 是在 ios 开发过程中使用较为频繁的一个 Controller,但是在使用过程中经常会遇到一些问题,例如本文所要解决的,如何修改 TabBar 选中时文字及图片的颜 ...
- 实现Discuz论坛客户端应用源码
通过使用该源码,开发者可以迅速地将Discuz论坛迁移到Android客户端中.不需要任何的开发工作即可拥有属于自己论坛的Android客户端 源码下载:http://code.662p.com/vi ...
- iOS开发之功能模块--推送之坑问题解决
不管想不想看我后面再开发中总结的经验,但是很值得推荐一位大神写的关于苹果推送,很多内容哦:http://www.cnblogs.com/qiqibo/category/408304.html 苹果开发 ...
- break、continue、return
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- SQLite使用(一)&&选择表类型
在SQLite中,主要有两种表类型,带rowid的表和不带rowid的表.我们利用create table 建一张表,默认都会有一个隐含名字为rowid的主键,暂且称带rowid的表为普通表.如果建表 ...
- SQL Server编程入门
SQL编程要比Java编程.C#编程简单许多,下面我们直接讲干货21:04:31 使用变量 局部变量 在T-SQL中,局部变量的名称必须以标记@作为前缀.T-SQL的局部变量其实和Java中的局部变量 ...