sql中sysdate 和 current_date 的区别及to_char( tv_date, ‘YYYY-MM-DD‘)当天时间与数据库时间的格式转换与比较

sysdate 和 current_date 的区别

在oracle中current_datesysdate都是显示当前系统时间, 其结果基本相同,但是有三点区别:
  1. current_date返回的是当前会话时间,而sysdate返回的是服务器时间;
  2. current_date有时比sysdate快一秒,这可能是四舍五入的结果;
  3. 如果修改当前会话的时区,比如将中国的时区为东八区,修改为东九区,则current_date显示的时间为东九区时间, 根据东加西减的原则,current_date应该比sysdate快一小时。

实例:

1 alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
2 20:01:26 SQL> select current_date,sysdate from dual;
3 CURRENT_DATE        SYSDATE
4 ------------------- -------------------
5 2009-03-10 20:01:37 2009-03-10 20:01:37
1 20:01:43 SQL> select current_date,sysdate from dual;
2 CURRENT_DATE        SYSDATE
3 ------------------- -------------------
4 2009-03-10 20:01:44 2009-03-10 20:01:43

注意:current_date与sysdate快了一秒。

修改当前会话时区为东九区:

1 alter session set time_zone='+09:00'
2 20:04:19 SQL> select current_date,sysdate from dual
3 CURRENT_DATE        SYSDATE
4 ------------------- -------------------
5 2009-03-10 21:04:22    2009-03-10 20:04:22

注意
在pg日期中中SYSDATE是不存在的,存在如下:

select now(),CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP ;

在这里插入图片描述

select CURRENT_DATE --2020-08-06
select NOW()       --2020-08-06 18:36:45.117243+08

在这里进行当天时间与数据库时间的比较:

数据库时间格式为:tv_date:2020-08-06 10:37:07
 		select
        <include refid="Base_Column_List"/>
        from t_sys
        where user_id = '123' AND  to_char( CURRENT_DATE, 'YYYY-MM-DD' ) = to_char( tv_date, 'YYYY-MM-DD')

这里是一个真诚的***青年技术交流QQ群:761374713***,不管你是大学生、社畜、想学习变成的其他人员,欢迎大家加入我们,一起成长,一起进步,真诚的欢迎你,不管是技术,还是人生,还是学习方法。有道无术,术亦可求,有术无道,止于术。在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可为编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值