EF Linq查詢 獲取伺服器時間

2021-08-20 23:34:39 字數 1013 閱讀 8202

很多人做專案時候當喜歡用datetime方法來做伺服器時間直接寫入了資料庫,不得不說這是非常錯誤的,有些使用者的電腦自己會把自己的電腦時間改了忘記了改回正確的時間,或者有使用者的電腦很老很舊主機板的電池已經壞了,每次開機時間都是主機板出廠的預設時間,這個時候用datetime只有給自己和團隊新增麻煩,報表永遠都不對,所以很有必要所有的時間統一使用伺服器的時間。

如果是用ado.net就很方便,sql直接用getdate()就解決了,但是linq好像沒有這乙個函式,或者有,只是我不知道(請原諒我只是一頭剛發芽的小菜),那麼linq用什麼方式來解決這個問題呢?

親測可以正確獲取

1、第一種方式:用ef(寫在lambda或者linq裡)執行sql語句(執行報錯),只能單獨來執行

var serverdatetime = ctx.database.sqlquery("select getdate()").firstordefault();
第二種方式:

sqlfunctions.getdate() ,

這種方式可以直接寫在lambda或者linq裡,並且在程式執行時生成的sql語句是getdate(),因此推薦使用這種方式

var serverdatetime=ctx.set().select(s => datetime.now).first();
2、在更新model的datetime欄位=serverdatetime,這時新增到資料庫裡的時間就是當前伺服器的時間了.

public partial class demodbentities : dbcontext

protected override void onmodelcreating(dbmodelbuilder modelbuilder)

public virtual dbsetdemomodel

}

public static void update_isbuy(int id)

}

js獲取伺服器時間

js獲取伺服器端時間有何用?比如說做乙個商品倒計時搶購的活動,使用new date 來獲取時間來做是有風險的,比如時區,使用者手動修改時間等 js如何獲取伺服器端時間?獲取伺服器時間還是會依賴ajax請求,但是可以不用通過後台介面獲取,可直接在請求頭部獲取到,如下 同步請求 function get...

JS獲取伺服器時間

var d new date var d2 new date 年,月,日,時,分,秒 new date 2014,11 2014年12月 月從0到11 new date 2018,7,8,18,8,8 2018年8月8日 18時8分8秒 獲取年 getfullyear 獲取月 getmonth 0 ...

ajax獲取伺服器當前時間

通過ajax獲取response header 上的date值,注意時區,在chrome 開發工具header中看到的均為格林威治時間,比北京時間小8個小時,獲取的時區與伺服器端設定有關係。從response header中獲取伺服器當前時間,不存在有快取時的問題 另外,通過jquery的ajax方...