已知:從別的地方取來資料存入本地資料庫,儲存的時候,順帶將伺服器的時間也存起來【這個時間是以 datetime 型別儲存的】。
問題:當我從本地資料庫取資料的時候,如果發現這條資料是一小時之前存的,就刪除然後重新從遠端獲取資料存入本地資料庫,如果是一小時之記憶體的,就直接讀取這些資料。
這個問題一點也不難。
我的想法是:直接在where方法中寫點引數,然後過濾之。
過程是:用當前時間減去儲存的時間,時間差取分鐘與60比較。小於60分鐘資料可用,大於60分鐘資料過期。
如下:
var tempf = db.order.where(t => (datetime.now-t.param3).totalminutes <60);
結果直接就失敗了。
說什麼引數型別要統一之類的意思。
然後再換
var tempf = db.order.where(t => (datetime.now - convert.todatetime(t.param3)).totalminutes < 60);
還是報錯:
linq表示式不識別 convert......之類的
瞬間想起來linq表示式最後是動態生成的sql語句,我在c#中寫的函式,他不一定認識,所以報錯。
所以再改
datetime sdate = datetime.now.addminutes(-60);
var tempf = db.order.where(t => t.param3 > sdate);
這次先取60分鐘前的時間,然後直接比較大小即可,這樣在where方法中就不會出現c#的 convert()方法或著.totalminutes()方法,就不會錯了。
MySQL中一條SQL語句的執行過程
查詢語句的執行順序 客戶端通過tcp連線傳送連線請求到mysql聯結器,聯結器會對該請求進行許可權驗證及連線資源分配 max connections,8小時超時 建立連線後客戶端傳送一條語句,mysql收到該語句後,通過命令分發器判斷其是否是一條select語句,如果是,在開啟查詢快取的情況下,先在...
ELK 簡單搜尋一條日誌記錄的查詢語句
如現有請求日誌如下 request body server 9999 username hello player id 100001 time 0現需要找到 abc.com index.php?s a b c 的使用者名為 hello 的一條請求日誌,它存放在伺服器9999上,可以在 elk 查詢器...
mysql中,一條查詢sql的執行過程
作為乙個程式設計師,最不能避免的就是與sql打交道,那麼,在我們平時寫的那麼多sql它們是怎麼執行,並給我們返回資料的?比如最簡單的乙個查詢 select from user where id 10 sql簡單,但問題是你知道它是如何執行的嗎?先從整體看一下mysql資料庫的執行構造 1 serve...