最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

postgresql的now()與Oracle的sysdate區(qū)別說明

 更新時(shí)間:2020年12月28日 11:33:28   作者:丹心明月  
這篇文章主要介紹了postgresql的now()與Oracle的sysdate區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

postgresql的now()為當(dāng)前事務(wù)開始時(shí)間,

而Oracle的sysdate是當(dāng)前時(shí)間。

區(qū)別在于事務(wù)。

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在事務(wù)中是一直變化的。

總結(jié):

- postgresql的now()為當(dāng)前事務(wù)開始時(shí)間,如果調(diào)用now(),就會(huì)獲取事務(wù)開始的時(shí)間,而不是獲取的系統(tǒng)當(dāng)前的時(shí)間。

- Oracle的sysdate是獲取當(dāng)前時(shí)間,啥時(shí)候調(diào)用sysdate,就是啥時(shí)候的時(shí)間。

補(bǔ)充:mysql中now()函數(shù)的使用,還有oracle的sysdate,可能埋下的坑

mysql中now()函數(shù)的使用,還有oracle的sysdate

在需求中如果系統(tǒng)中藥添加當(dāng)前操作的時(shí)間那么很簡單的一個(gè)操作在寫sql的時(shí)候直接在這個(gè)字段對(duì)應(yīng)的位置寫上now()函數(shù)就可以了,這樣就少些了很多代碼,尤其是在在用jdbc時(shí)寫的時(shí)候,可以少寫一些關(guān)于占位符的代碼,但是這樣做是有一個(gè)隱含的前提的是數(shù)據(jù)庫和服務(wù)器是在同一個(gè)機(jī)器上的,如果不在同一臺(tái)機(jī)器上,那么這樣寫就是一個(gè)坑啊,我覺得沒有經(jīng)驗(yàn),沒有掉進(jìn)過坑的人就會(huì)這樣寫,比如我,偷懶就會(huì)這樣寫.等到用到這個(gè)時(shí)間來比較或者作為業(yè)務(wù)邏輯的判斷依據(jù)時(shí),這個(gè)坑就出現(xiàn)了

lz在定位問題做業(yè)務(wù)的時(shí)候就遇到了,當(dāng)時(shí),服務(wù)器在lz的電腦上,數(shù)據(jù)庫在遠(yuǎn)端,因?yàn)闃I(yè)務(wù)需要就把時(shí)間調(diào)到未來的一個(gè)時(shí)間點(diǎn),然后開始做,但是后來經(jīng)過了1周左右,偶然發(fā)現(xiàn)了一個(gè)表用的時(shí)間竟然時(shí)當(dāng)前的真是時(shí)間,我就有了這樣的猜測,應(yīng)該有一個(gè)程序員用了sysdate字段.盡管沒有明顯找到,但是應(yīng)該是用的,不然不會(huì)取到真實(shí)的時(shí)間啊.尤其一些需要遠(yuǎn)程調(diào)試的項(xiàng)目,同事對(duì)于編碼規(guī)范,我覺得sql的編碼規(guī)范也要把這一條加上去.

lz以前不懂也做過這樣的事情,現(xiàn)在只能提醒大家不要這樣做,然后改掉自己最近這樣寫的代碼.

建議用java生成new一個(gè)時(shí)間對(duì)象,如果用的是jdbc直接拼在sql里,可以不要用占位符.

//在dao中這樣寫
member(name,pw,register_time)value(?,?,'"+DbAssitor.sdfyyyyMMddHHmmss.format(new Date())+"');";
//數(shù)據(jù)庫助手類定義一個(gè)sdf類
public class DbAssitor
{
 /** 數(shù)據(jù)庫相關(guān)操作中操作結(jié)果是沒有影響行數(shù) ***/
 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");
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評(píng)論

商南县| 历史| 柳江县| 西青区| 蒲城县| 陇西县| 疏勒县| 留坝县| 普格县| 通化县| 乌拉特中旗| 五莲县| 泰和县| 吉林市| 阳泉市| 涡阳县| 监利县| 罗城| 洛隆县| 乌拉特前旗| 彭阳县| 中方县| 柏乡县| 邵东县| 辰溪县| 乌海市| 平遥县| 临潭县| 旅游| 绥宁县| 定南县| 天门市| 霍邱县| 图木舒克市| 建宁县| 桦南县| 五大连池市| 淮北市| 闻喜县| 布拖县| 张家港市|