最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

Oracle查詢優(yōu)化改寫技巧與案例 第七章 日期運算

2022-08-09 15:36 作者:泉來啦  | 我要投稿

7.1日期類型

????????Oracle中常用的時間類型有兩個:DATE和TIMESTAMP。

????????DATE精度到秒,TIMESTAMP可以保存秒的小數(shù):

????????DATE類型相減得到的結果為整型,單位是天。

????????TIMESTAMP類型相減或TIMESTAMP與DATE相減得到的結果類型是INTERVAL。

?????????DATE和TIMESTAMP兩種類型加減一個數(shù)值得到的結果類型都是DATE:

7.2日期計算

????????如上節(jié)所述,Oracle中日期可以直接進行計算,加1就是1天,那么1/24就是1小時,分與秒的加減類似:

7.3時間間隔類型

????????如上節(jié)所述,TIMESTAMP與數(shù)值加減后得到的是DATE類型,損失了精度。如果要保留精度可以改用時間間隔類型(INTERVAL)處理,我們可以通過函數(shù)INTERVAL來得到間隔值:

????????則當前時間加一天可寫為:

????????當然,DATE類型也可以通過INTERVAL進行計算,結果類型仍為DATE:

7.4日期計算函數(shù)

????????在Oracle中,DATE類型可以直接加減天數(shù),而加減月份要用add_months函數(shù):

????????月份加減需要注意的問題:

????????如上所示,當計算上月同期時可能會重復計算28號的數(shù)據(jù)。

????????同理,計算去年同期時也會發(fā)生重復計算的現(xiàn)象,而且因四年一遇更難發(fā)現(xiàn):

????????月份加減不能使用INTERVAL類型:

????????因為沒有2018-02-29,所以此時報錯。

7.5間隔月份

????????Oracle兩個DATE相減的結果以天為單位,如果想得到間隔的月份需要使用函數(shù):

????????該函數(shù)同樣有前面提到過的計算問題,使用的時候需要注意是否影響需求:

7.6獲取記錄間的間隔時間

????????我們經常需要取記錄間的間隔時間,比如公司想知道部門20招聘員工的間隔時間。JOINE與SMITH之間的間隔就是1981.04.02-1980.12.17。

????????我們可以通過生成的序號來關聯(lián)取值:

?????也可以通過lag分析函數(shù)直接取得上一個記錄的信息:

?

????????lag和lead分別取前后的數(shù)據(jù),如果記不住可以先看執(zhí)行結果再決定用哪一個:


Oracle查詢優(yōu)化改寫技巧與案例 第七章 日期運算的評論 (共 條)

分享到微博請遵守國家法律
郸城县| 上思县| 西华县| 开封县| 临泉县| 潜山县| 兴国县| 绵阳市| 海南省| 聂荣县| 增城市| 普兰店市| 高唐县| 周至县| 横峰县| 那坡县| 田东县| 观塘区| 福贡县| 竹山县| 分宜县| 买车| 五指山市| 丰镇市| 怀仁县| 灌阳县| 迁西县| 泸西县| 万州区| 会理县| 双牌县| 谢通门县| 弋阳县| 盘山县| 正安县| 桓台县| 沙湾县| 诸暨市| 浦县| 阿合奇县| 抚宁县|