學習關于時間在sql里面的對比,用if語句(這個有點特別)

需求:假如當前時間是大于starttime且小于endtime的則按starttime倒序排列顯示一條記錄;假如當前時間小于starttime且小于endtime則按starttime正序排列顯示一條記錄。要在一次sql查詢中完成。

====這個是論壇里面的,人家給出答案了,我只是學習的.算做個學習筆記,也許以后會用到。怕腦子壞了

?

 SELECT FROM_UNIXTIME( starttime, '%Y年%m月%d日 %H時%i分%s秒' ) AS starttime, FROM_UNIXTIME( endtime, '%Y年%m月%d日 %H時%i分%s秒' ) , if( starttime < UNIX_TIMESTAMP( ) , starttime - UNIX_TIMESTAMP( ) , (
starttime - UNIX_TIMESTAMP( ) ) +20000000
) AS t
FROM test
WHERE endtime > UNIX_TIMESTAMP( )
ORDER BY t ASC
LIMIT 0 , 30 

  

if()函數就是實現這個的關鍵。
IF(expr1,expr2,expr3)?
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),則 IF()的返回值為expr2; 否則返回值則為 expr3。IF() 的返回值為數字值或字符串值,具體情況視其所在語境而定。

為true
執行 starttime - UNIX_TIMESTAMP() 按得到的值asc排序這樣就得到了“距離現在最近的starttime,也就是剛剛已經開始的”記錄列表
為false
執行 (starttime - UNIX_TIMESTAMP())+20000000?
starttime - UNIX_TIMESTAMP()這樣得到了 “starttime距離現在最近的,也就是馬上將要到來的starttime”記錄列表;由于 “未開始記錄的”starttime - UNIX_TIMESTAMP() 得到的值可能小于“已開始記錄的”starttime - UNIX_TIMESTAMP() 的值,這種情況下排序就混亂了,所以要加上一個很大的值20000000避免這種情況,這樣就能保證未開始記錄的starttime永遠大于已開始記錄的starttime值,這樣未開始的值記錄排在了已開始記錄之后了。

?

轉載于:https://www.cnblogs.com/xiangxiaodong/archive/2012/12/21/2828609.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260148.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260148.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260148.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ruby中的回調方法和鉤子方法

在ruby中&#xff0c;當某些特定的事件發生時&#xff0c;將調用回調方法和鉤子方法。事件有如下幾種&#xff1a; 調用一個不存在的對象方法類混含一個模塊定義類的子類給類添加一個實例方法給對象添加一個單例方法引用一個不存在的常量對以上的事件&#xff0c;都可以為之編寫…

超簡單的JNI——NDK開發教程

不好意思各位&#xff0c;我按照網上一些教程進行JNI開發&#xff0c;折騰了半天也沒成功&#xff0c;最后自己瞎搞搞定了&#xff0c;其實超簡單的&#xff0c;網上的教程應該過時了&#xff0c;最新版的AS就包含了NDK編譯的功能&#xff0c;完全不用手動javah&#xff0c;各種…

查詢工資最低的3名員工的職工工號、姓名和收入_關于工資條,這6個常識必須掌握,事關你的權益!...

大狀說&#xff1a;找大狀&#xff0c;中小企業自己的法律顧問。今天為大家帶來的文章&#xff0c;是《關于工資條&#xff0c;這6個常識必須掌握&#xff0c;事關你的權益&#xff01;》&#xff0c;是關于勞動法的內容&#xff0c;希望能給大家帶來幫助。1、單位不發工資條的…

oracle查對象創建時間,oracle:查詢某個時間之后,指定用戶,指定對象類型,并創建的表的個數...

SQL> select COUNT(*) from dba_objects where created< to_date(17-01-14,dd-mm-yy) AND owner用戶名 and object_typeTABLE;查詢某個時間之后創建的表有哪些&#xff1a;SQL> select object_name,created from dba_objects where created> to_date(17-01-14,dd-…

年末跳槽

末日過了&#xff0c;大家都在準備著年會&#xff0c;年總結&#xff0c;年終獎。 而我卻在煩著跳槽的事。 由于一個偶遇的機會&#xff0c;最近面試了公司B&#xff0c;面試過程還可以&#xff0c;跟公司B的技術管理人談得還挺開心的。他也同意我的技術。 開始的時候&#xff…

SQL之用戶自定義函數

關于SQL Server用戶自定義的函數&#xff0c;有標量函數、表值函數&#xff08;內聯表值函數、多語句表值函數&#xff09;兩種。 題外話&#xff0c;可能有部分朋友不知道SQL Serve用戶自定義的函數應該是寫在哪里&#xff0c;這里簡單提示一下&#xff0c;在Microsoft SQL Se…

hdoj3351-stack

Problem DescriptionI’m out of stories. For years I’ve been writing stories, some rather silly, just to make simple problems look difficult and complex problems look easy. But, alas, not for this one.You’re given a non empty string made in its entirety f…

vb語言程序設計_如果編程語言難度決定頭發濃度,學這語言的可能要光頭了

對于程序員來說&#xff0c;頭發真的比什么都重要&#xff0c;甚至很多程序員&#xff0c;大量的人民幣都花在了后續植發上。甚至網上還流行這么一句話&#xff0c;你發際線越高&#xff0c;編程能力越高&#xff0c;那對于程序員來說&#xff0c;那么多語言&#xff0c;到底哪…

oracle同義詞很慢,通過問題長知識----ORACLE同義詞

現象&#xff1a;create table JBPM_JOB時出錯&#xff0c;提示name is used by existing object而drop table 的時候&#xff0c;卻報table or view does not exist.這是一個很矛盾的現象。排查&#xff1a;select * from user_objects where OBJECT_NAME ‘JBPM_JOB’—注意字…

C#獲取程序集的版本號和最后編譯時間

C#獲取程序集的版本號&#xff1a;string ver System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); C#中如何將記錄項目的最后編譯時間&#xff1a;在實際的軟件開發工作中&#xff0c;我們通常需要記錄某個工程的最后編譯時間&#xff0c;原來…

無刷新上傳Excel后利用JQuery AJAX 顯示進度條的實現方式

1、前臺上傳頁面代碼 <div class"clearfix mywebsite-nodata"><div id"show"><form action"<?site_url(user/upload)?>" target"ifmupload" id"myform" method"post" accept-charset"…

怎么理解python語言_Python語言入門1-理解Python語言

本文主要向大家介紹了Python語言入門的理解Python語言&#xff0c;通過具體的內容向大家展現&#xff0c;希望對大家學習Python語言入門有所幫助。python是解釋型的腳本語言解釋型語言與C/C等編譯型語言相比&#xff0c;python語言的程序并不是首先編譯成二進制機器碼后運行&am…

SD Card Formatter for Mac Download

https://www.sdcard.org/downloads/formatter_4/eula_mac/ SDFormatter Mac版是一款Mac OS平臺上的sd卡修復工具&#xff0c;SDFormatter是一款比較好用的SD卡格式化工具&#xff0c;能夠格式化SD存儲卡和SDHC記憶Card&#xff08;SD/SDHC 存儲卡&#xff09;&#xff0c;使用遵…

linux刪除用戶oracle用戶名,linux添加用戶useradd 刪除用戶userdel

1.作用useradd或adduser命令用來建立用戶帳號和創建用戶的起始目錄&#xff0c;使用權限是超級用戶。2.格式useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name3.主要參數-c&#xff1a;加上備注文字&#xff0c…

Asp.net創建偽靜態頁面

下面是我研究了好幾天和同事一起才研究出來的&#xff0c;原創。 1偽靜態的定義&#xff1a; 偽靜態是相對真實靜態來講的&#xff0c;通常我們為了增強搜索引擎的友好面&#xff0c;都將文章內容生成靜態頁面&#xff0c;但是有的朋友為了實時的顯示一些信息。或者還想運用動態…

Spring 管理Bean(獲取Bean,初始化bean事件,自動匹配ByName······等)

1.實例化spring容器 和 從容器獲取Bean對象 實例化Spring容器常用的兩種方式&#xff1a; 方法一: 在類路徑下尋找配置文件來實例化容器 [推薦使用] ApplicationContext ctx new ClassPathXmlApplicationContext(new String[]{"beans.xml"}); 方法二: 在文件系統路徑…

directoryinfo 讀取 映射磁盤_LoaRunner性能測試系統學習教程:磁盤監控(5)

上期我們講到LoaRunner性能測試內存監控&#xff0c;這期我們講LoaRunner性能測試磁盤監控。磁盤監控在介紹磁盤監控前&#xff0c;先介紹固定磁盤存儲管理的性能&#xff0c;固定磁盤存儲器的結構層次如圖所示。每個單獨的磁盤驅動器稱為一個物理卷&#xff08;PV&#xff09;…

Eclipse新建web項目正常啟動tomcat不報錯,但不能訪問項目的解決方法

原因: 雖然我手動添加了自己下載的tomcat,但是由于在Eclipse中創建Server時&#xff0c;“Server Locations”選項采用的時默認配置&#xff0c;即"Use workspace metadata(does not modify tomcat installation ),這意味著該Server不會改變TOMCAT的安裝及部署目錄&#…

oracle10g執行insert,oracle 10g 增強審計。表insert 及bind values

oracle 10g之前&#xff0c;可以審計對表的操作&#xff0c;但不能記錄操作時的各個列的值。在10g中&#xff0c;已經可以審核并監控到具體的sql語句及內容了。要求10g以后的版本。alter system set audit_traildb_extended scopespfile;[more]示例&#xff1b;SQL> show us…

點擊按鈕 變換圖片

<html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>變換圖片</title><script type"text/javascript">function chan…