to_date()与to_char()

to_date()

select sysdate,to_date('2018-3-20','yyyy-mm-dd') from dual;
select sysdate,to_date('2018-3-20','yyyy.mm.dd') from dual;
select sysdate,to_date('2018-3-20','yyyy/mm/dd') from dual;
select sysdate,to_date('2018-3-20','yyyy-mm-dd hh24:mi:ss') from dual;
select sysdate,to_date('2018.3.20','yyyy-mm-dd') from dual;
select sysdate,to_date('2018/3/20','yyyy-mm-dd') from dual;
select sysdate,to_date('20180320','yyyy-mm-dd') from dual;

运行结果:

无论是日期是什么格式,还是’yyyy-dd-mm’是什么格式,其结果都和系统日期格式保持一致。得到的时间为2018/3/20。

时分秒格式:


select to_date('2019-01-01 10:20:30','yyyy-mm-dd hh24:mi:ss') from dual;

运行结果:

时间作为条件判断的赋值

第一种情况:字段内容带有时分秒,输入的数据没有时分秒


select h.creation_date from demo h where h.creation_date > to_date('2019-01-01','yyyy-mm-dd')

运行结果: 

有数据,时分秒的字段是可以和不带时分秒的字段比较。

第二种情况:输入的数据按时分秒去匹配:

select * from demo t where t.creation_date > to_date('2019-01-01 10:20:30','yyyy-mm-dd hh24:mi:ss')

运行结果: 

第三种情况:将字段内容转换成没有时分秒,输入参数没有时分秒

select to_date(to_char(fcv.creation_date,'yyyy-mm-dd'),'yyyy-mm-dd') 
 from demo fcv
 where to_date(to_char(fcv.creation_date,'yyyy-mm-dd'),'yyyy-mm-dd') > to_date('2019-01-01','yyyy-mm-dd') 
  and fcv.creation_date < sysdate;

 

第四种情况:将字段内容转换成没有时分秒,输入参数有时分秒

select to_date(to_char(fcv.creation_date, 'yyyy-mm-dd'), 'yyyy-mm-dd')
  from demo fcv
 where to_date(to_char(fcv.creation_date, 'yyyy-mm-dd'), 'yyyy-mm-dd') >
       to_date('2019-01-01 10:20:30', 'yyyy-mm-dd hh24:mi:ss')
   and fcv.creation_date < sysdate;

结果一样的。只要是保证时间类型对应时间类型就可以。

to_char()

将时间日期按照指定的格式输出,得到的是字符串,而非date类型。

select sysdate,to_char(sysdate,'yyyy-mm-dd')from dual;  
select sysdate,to_char(sysdate,'yyyy/mm/dd')from dual;  
select sysdate,to_char(sysdate,'yyyymmdd')from dual;  
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual;  

 运行结果:

2019-05-14
2019/05/14
20190514
2019-05-14 11:43:26

熟练使用to_date()和to_char()的集合使用。

 

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle 中的 TO_CHAR 函数可以将一个日期、数字或时间戳转换为字符串。TO_DATE 函数则可以将一个字符串转换为日期格式。 例如: TO_CHAR(SYSDATE, 'MM-DD-YYYY') 将当前系统日期转换为字符串,格式为月-日-年 TO_DATE('2022-12-25', 'YYYY-MM-DD') 将字符串 '2022-12-25' 转换为日期格式,格式为年-月-日。 ### 回答2: Oracle是一种强大的关系型数据库管理系统,其中to_char和to_date是两个常用的函数。to_char用于将日期或数字转换为字符型数据,而to_date则用于将字符型数据转换为日期型数据。 to_char函数的用法如下: TO_CHAR(date, format) 其中date表示需要转换的日期或数字,format是目标字符型数据的格式。format可以包括以下字符: - YYYY:四位数的年份 - MM:月份 - DD:日期 - HH:24小时制的小时数 - MI:分钟数 - SS:秒数 例如,将一个日期型数据转换为字符型数据并且以YYYY-MM-DD的格式输出,可以使用如下语句: SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL; to_date函数的用法如下: TO_DATE(char, format) 其中char表示需要转换的字符型数据,format是目标日期型数据的格式。format可以包括与to_char函数相同的字符。 例如,将一个字符型数据转换为日期型数据并且以YYYY-MM-DD的格式输出,可以使用如下语句: SELECT TO_DATE('2021-07-01', 'YYYY-MM-DD') FROM DUAL; 需要注意的是,format中的字符与输入的char必须完全匹配,否则该函数将会报错。 在实际的开发工作中,to_char和to_date函数的应用非常广泛,可以用于数据的转换、格式化输出、时间计算等方面。因此,熟练掌握这两个函数的用法对于在Oracle数据库中进行数据查询和处理非常重要。 ### 回答3: Oracle中的to_char和to_date都是用于将数据类型转换的函数,但它们的用途和使用方法有所不同。 to_char函数用于将日期型、数值型等数据类型转换为字符串类型。to_char函数的语法为: to_char(待转换的值, 转换格式) 其中,待转换的值可以是日期型、数值型或者其他数据类型,转换格式指定了转换后的字符串的格式,包括日期、时间、数值等。to_char函数可以将日期型按照指定的格式转换成字符串,例如将日期型转换成"YYYY-MM-DD"格式的字符串。 to_date函数则用于将字符串类型转换为日期类型。to_date函数的语法为: to_date(待转换的字符串, 转换格式) 其中,待转换的字符串必须符合指定的转换格式,否则会出现转换错误。to_date函数可以将字符串类型按照指定的格式转换成日期型,例如将"2021-08-18"格式的字符串转换成日期型。 需要注意的是,to_char和to_date函数在转换时都需要指定转换格式,否则会使用默认格式进行转换,导致出现错误。对于to_char函数而言,如果不指定转换格式,则会默认采用"DD-MON-YY"格式进行转换。对于to_date函数而言,如果不指定转换格式,则会默认采用"DD-MON-YY"格式进行转换。 总的来说,to_char与to_date是Oracle中非常常用的函数,可以帮助用户在不同的数据类型之间进行转换,同时也需要注意使用时需要指定正确的转换格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值