postgresql的now()为当前事务开始时间,

而Oracle的sysdate是当前时间。

区别在于事务。

postgresql中的now():

postgres=# begin ;

BEGIN

postgres=# select now();

now

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

2017-03-31 14:28:32.403869+08

(1 row)

postgres=# select now();

now

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

2017-03-31 14:28:32.403869+08

(1 row)

postgres=# select now();

now

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

2017-03-31 14:28:32.403869+08

(1 row)

postgres=# end;

COMMIT

postgres=# select now();

now

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

2017-03-31 14:28:54.917897+08

(1 row)

postgres=#

而Oracle中的sysdate在事务中是一直变化的。

总结:

- postgresql的now()为当前事务开始时间,如果调用now(),就会获取事务开始的时间,而不是获取的系统当前的时间。

- Oracle的sysdate是获取当前时间,啥时候调用sysdate,就是啥时候的时间。

补充:mysql中now()函数的使用,还有oracle的sysdate,可能埋下的坑

mysql中now()函数的使用,还有oracle的sysdate

在需求中如果系统中药添加当前操作的时间那么很简单的一个操作在写sql的时候直接在这个字段对应的位置写上now()函数就可以了,这样就少些了很多代码,尤其是在在用jdbc时写的时候,可以少写一些关于占位符的代码,但是这样做是有一个隐含的前提的是数据库和服务器是在同一个机器上的,如果不在同一台机器上,那么这样写就是一个坑啊,我觉得没有经验,没有掉进过坑的人就会这样写,比如我,偷懒就会这样写.等到用到这个时间来比较或者作为业务逻辑的判断依据时,这个坑就出现了

lz在定位问题做业务的时候就遇到了,当时,服务器在lz的电脑上,数据库在远端,因为业务需要就把时间调到未来的一个时间点,然后开始做,但是后来经过了1周左右,偶然发现了一个表用的时间竟然时当前的真是时间,我就有了这样的猜测,应该有一个程序员用了sysdate字段.尽管没有明显找到,但是应该是用的,不然不会取到真实的时间啊.尤其一些需要远程调试的项目,同事对于编码规范,我觉得sql的编码规范也要把这一条加上去.

lz以前不懂也做过这样的事情,现在只能提醒大家不要这样做,然后改掉自己最近这样写的代码.

建议用java生成new一个时间对象,如果用的是jdbc直接拼在sql里,可以不要用占位符.

//在dao中这样写

member(name,pw,register_time)value(?,?,'"+DbAssitor.sdfyyyyMMddHHmmss.format(new Date())+"');";

//数据库助手类定义一个sdf类

public class DbAssitor

{

/** 数据库相关操作中操作结果是没有影响行数 ***/

public static int NO_AFFECT_ROW = 0;

public static String sdfyyyyMMddHHmmss_ = "yyyy-MM-dd HH:mm:ss";

public static SimpleDateFormat sdfyyyyMMddHHmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

oracle sql now函数,postgresql的now()与Oracle的sysdate区别说明相关推荐

  1. 2020-11-02 oracle sql listagg函数使用

    listagg 函数的作用就是将多行记录合成一行记录 基础用法:listagg(a,b) within group(order by c) a指的是要进行拼接的字段, b指的是连接字段与字段之前的连接 ...

  2. oracle sql now函数,SQL Server,MySQL,Oracle,PostgreSQL中常用函数用法(1)日

    练习使用Hibernate没有用MySQL数据库,而是用了前不久接触的PostgreSQL,由于不同的数据对于相同的操作有各自的函数,MySQL的date_format(),在PostgreSQL中是 ...

  3. oracle sql length函数,PLSQL LENGTH用法及代码示例

    PLSQL LENGTH函数用于返回指定字符串的长度,换句话说,它返回char的长度. PLSQL中的LENGTH函数接受的char可以是任何数据类型,例如CHAR,VARCHAR2,NCHAR,NV ...

  4. oracle --sql 排名函数

    排名函数 排名的几个分析函数 1.row_number 2.rank 3.dense_rank 语法:row_number() over(order by column) 重复的数据,不并列 比如 3 ...

  5. Oracle SQL数字函数

    数字函数: 操作符 含义 Round 四舍五入 Trunc 截断 Mod求余 Round:四舍五入(可以对年.月.日和数值等进行四舍五入) 例如:对数字进行四舍五入 Select round(34.5 ...

  6. oracle中in函数在子查询使用,Oracle In

    oracle函数 的 Oracle In 在本教程中,您将学习如何使用Oracle IN运算符来确定值是否与列表或子查询中的任何值相匹配. Oracle IN操作符介绍 Oracle IN运算符确定值 ...

  7. Oracle sql给一列赋值,简单的Oracle变量SQL赋值

    您的变量声明是正确的. DECLARE关键字用于定义PL / SQL块中的变量(其主体由BEGIN和END分隔;).你想如何使用这个变量? 以下PL / SQL对我来说很好: DECLARE star ...

  8. oracle model类型,Oracle SQL高级编程——Model子句全解析-Oracle

    下面的语句会报错,因既没有显式的指定求解顺序,又没有加Automatic Order,此时Oracle会使用Sequential Order这种顺序,并不适合这个规则. SH@ prod> se ...

  9. oracle的nvl函数用法,nvl函数(sql中nvl函数的使用)

    谁解释一下nvl()函数有什么用啊,是干什么的,简明扼要,谢谢 NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身. 用法:查询不相等数据 功能:如果string1为 ...

最新文章

  1. erlang在NotePad++下的高亮
  2. tcp 服务端如何判断客户端断开连接
  3. Ubuntu 20.04安装Ros Noetic及Ubuntu 18.04安装ROS Melodic(两版本详细填坑)
  4. (18)FPGA面试题查找表的原理与结构
  5. centos5.5 下面 lnmp环境遇到的小问题
  6. 用积木搭出的埃菲尔铁塔
  7. 2个74151实现16位数据选择器以及在Multisim的演示
  8. 华为网络工程师终极面试题
  9. 机器学习在各个领域的实际应用
  10. java减号的正则_java 正则匹配 特殊字符 减号- 的情况,处理方式
  11. 无损音频flac转mp3
  12. 独立操作按钮操作后自动失焦
  13. Arithmetic Code 算术编码
  14. 一条公链的坎坷进化路 |链捕手
  15. python爬虫爬取京东商品评价_python爬取京东商品信息及评论
  16. 详解ReID的各部分组成及Trick——FastReID中的baseline配置
  17. 在做黑马程序员中第10题出错啦,大家帮忙看看
  18. violate原理和用法
  19. 使用Trinity进行转录组组装
  20. AD19画板外框形状失败的解决办法

热门文章

  1. js实现当前导航菜单高亮显示
  2. 关于struts2如何去掉默认的后缀(.action)
  3. 一起学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程 (1)
  4. 某程序员对比美团和阿里的卷文化区别:美团重过程,死抠没用细节;阿里更自由,注重结果!...
  5. 千亿级携程酒店AWS实践
  6. 一文探讨堆外内存的监控与回收
  7. 年入50万,程序员众生相
  8. PingCode 3.0 发布,开启国产研发自动化时代
  9. 最新发布| Jira官宣中国区本地部署特殊政策,公布Data Center价格
  10. c语言运行时显示内存不足,请问:c或c++运行时 遇到虚拟内存不足时咋办,帮优化下代码...