中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

now()與sysdate的區別是什么

發布時間:2020-12-28 14:50:48 來源:億速云 閱讀:274 作者:Leah 欄目:開發技術

now()與sysdate的區別是什么?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

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");
}

看完上述內容,你們掌握now()與sysdate的區別是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武宁县| 乌拉特中旗| 马龙县| 泗阳县| 墨脱县| 观塘区| 常山县| 修文县| 弥勒县| 湖南省| 延吉市| 溧阳市| 越西县| 项城市| 巴林左旗| 耿马| 闽侯县| 芒康县| 辽宁省| 恩施市| 甘肃省| 阿尔山市| 翁源县| 柯坪县| 侯马市| 襄樊市| 永川市| 永寿县| 封开县| 永泰县| 东辽县| 正定县| 东乡族自治县| 清徐县| 兴海县| 佛山市| 永春县| 隆德县| 娄底市| 昌黎县| 夹江县|