熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows優化 >> 正文

如何實現日期比較 顯示五天內日期

2022-06-13   來源: Windows優化 

  主要的論點是集中在SELECT something FROM table
  WHERE TO_DAYS(NOW()) TO_DAYS(date_col) <= 5; 上,我試驗了半天,結果還是出錯,今天看了MYSQL的函數,終於出來了結果,不敢獨享,貼出來供大家研究,(雖然技術含量不高,別扔我柿子就行,呵呵)
  
  MYSQL的TO_DAYS(DATE)函數是這樣說明的:
  傳回DATE到公元0年的總日數,我測試了一下
  mysql>select to_days(now());
  ++
  | TO_DAYS(NOW()) |
  ++
  |       |
  ++
  
  出來的是當前時間距離公元年的總日數接著我試著用上面的語句測試
  
  mysql>select TO_DAYS(NOW()) TO_DAYS(date_col) <= ;
  出現結果
  ERROR :Unknown column date_col in field first
  
  此路不通了我就試著直接把代到date_col裡去
  
  mysql>select to_days(now()) to_days();
  出現結果
  ++
  |to_days(now()) to_days()|
  ++
  |      NULL  |
  ++
  
  啊?不會吧?這樣也不行啊?
  我接著試命令
  mysql>select
  
  突然猛的想到嘿嘿to_days(now())出來的是整數我直接跟整數運算就行了何必再to_days(date)呢?馬上試驗
  
  mysql>select to_days(now()) ;
  ++
  | to_days(now())   |
  ++
  |       |
  ++
  
  
  OK萬歲終於得到了我想要的結果呵呵 下面就是在PHP代碼中用SELECT 查詢了
  
  我存數據庫向來的習慣就是DATEANDTIME用NOW()直接賦值顯示的時候不用格式化直接取出來就能用
  
  下面是我的一個庫的部分結構
  CREATE TABLE infomess (
  infoid int() NOT NULL auto_increment
  topic varchar() NOT NULL
  ……
  email varchar()
  dateandtime datetime DEFAULT :: NOT NULL
  PRIMARY KEY (infoid)
  );
  
  
  這裡的DATEANDTIME是標准的日期格式然後我要查詢天內的記錄下面是SQL查詢語句
  $sql=select * from infomess where to_days(dateandtime) >= (to_days(now()) ) order by infoid desc limit $offset$psize;
  
  就要一個where to_days(dateandtime) >= (to_days(now()) )就夠了 後面的是另外的這裡的可以設為一個變量
  
  where to_days(dateandtime) >= (to_days(now()) $limitdays)
  
  然後$limitdays可以用GET方式傳遞(多數是有GET方式傳遞)
  
  在你的PHP後面跟上?limitdays=就行了 顯示天內也一樣$limitdasy改成就行了
  
  以上是利用MYSQL函數得到這樣的結果以上的結果都經過測試因為時間匆忙如果代碼有什麼問題請跟帖提出謝謝
  
  
  還有朋友說利用UNIX戳記來得到這樣的結果請問哪位寫過這樣的代碼貼點出來供大家參考比較也可以測試判斷一下PHP函數還是MYSQL函數實現的效率高

From:http://tw.wingwit.com/Article/os/youhua/201311/10844.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.