本文整理自网络,侵删。
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时写的时候,可以少写一些关于占位符的代码,但是这样做是有一个隐含的前提的是数据库和服务器是在同一个机器上的,如果不在同一台机器上,那么这样写就是一个坑啊,我觉得没有经验,没有掉进过坑的人就会这样写,比如我,偷懒就会这样写.等到用到这个时间来比较或者作为业务逻辑的判断依据时,这个坑就出现了
相关阅读 >>
更多相关阅读请进入《oracle》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。