亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > PostgreSQL > 正文

PostgreSQL教程(六):函數(shù)和操作符詳解(2)

2020-03-12 23:53:17
字體:
供稿:網(wǎng)友
這篇文章主要介紹了PostgreSQL教程(六):函數(shù)和操作符詳解(2),本文講解了模式匹配、數(shù)據(jù)類型格式化函數(shù)、時間/日期函數(shù)和操作符等內(nèi)容,需要的朋友可以參考下
 

六、模式匹配:

    PostgreSQL中提供了三種實現(xiàn)模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-風格正則表達式。
    1. LIKE:
 

復制代碼代碼如下:

    string LIKE pattern [ ESCAPE escape-character ]
    string NOT LIKE pattern [ ESCAPE escape-character ]
 

    每個pattern定義一個字串的集合。如果該string包含在pattern代表的字串集合里,那么LIKE表達式返回真。和我們想象的一樣,如果LIKE返回真,那么NOT LIKE表達式返回假,反之亦然。在pattern里的下劃線(_)代表匹配任何單個字符,而一個百分號(%)匹配任何零或更多字符,如:
 
復制代碼代碼如下:

    'abc' LIKE 'abc'     true
    'abc' LIKE 'a%'     true
    'abc' LIKE '_b_'    true
    'abc' LIKE 'c'        false  
 

    要匹配文本的下劃線或者百分號,而不是匹配其它字符,在pattern里相應的字符必須前導轉(zhuǎn)義字符。缺省的轉(zhuǎn)義字符是反斜杠,但是你可以用ESCAPE子句指定一個。要匹配轉(zhuǎn)義字符本身,寫兩個轉(zhuǎn)義字符。我們也可以通過寫成ESCAPE ''的方式有效地關(guān)閉轉(zhuǎn)義機制,此時,我們就不能關(guān)閉下劃線和百分號的特殊含義了。
    關(guān)鍵字ILIKE可以用于替換LIKE,令該匹配就當前的區(qū)域設置是大小寫無關(guān)的。這個特性不是SQL標準,是PostgreSQL的擴展。操作符~~等效于LIKE, 而~~*對應ILIKE。還有!~~和!~~*操作符分別代表NOT LIKE和NOT ILIKE。所有這些操作符都是PostgreSQL特有的。

 

    2. SIMILAR TO正則表達式:
    SIMILAR TO根據(jù)模式是否匹配給定的字符串而返回真或者假。
 

復制代碼代碼如下:

    string SIMILAR TO pattern [ESCAPE escape-character]
    string NOT SIMILAR TO pattern [ESCAPE escape-character]
 

    它和LIKE非常類似,支持LIKE的通配符('_'和'%')且保持其原意。除此之外,SIMILAR TO還支持一些自己獨有的元字符,如:    
    1). | 標識選擇(兩個候選之一)。
    2). * 表示重復前面的項零次或更多次。
    3). + 表示重復前面的項一次或更多次。
    4). 可以使用圓括弧()把項組合成一個邏輯項。
    5). 一個方括弧表達式[...]聲明一個字符表,就像POSIX正則表達式一樣。
    見如下示例:
 
復制代碼代碼如下:

    'abc' SIMILAR TO 'abc'           true
    'abc' SIMILAR TO 'a'              false
    'abc' SIMILAR TO '%(b|d)%'  true
    'abc' SIMILAR TO '(b|c)%'     false
 

    帶三個參數(shù)的substring,substring(string from pattern for escape-character),提供了一個從字串中抽取一個匹配SQL正則表達式模式的子字串的函數(shù)。和SIMILAR TO一樣,聲明的模式必須匹配整個數(shù)據(jù)串,否則函數(shù)失效并返回NULL。為了標識在成功的時候應該返回的模式部分,模式必須出現(xiàn)后跟雙引號(")的兩個轉(zhuǎn)義字符。匹配這兩個標記之間的模式的字串將被返回,如:
    MyTest=# SELECT substring('foobar' from '%#"o_b#"%' FOR '#'); --這里#是轉(zhuǎn)義符,雙引號內(nèi)的模式是返回部分。
 
復制代碼代碼如下:

     substring
    -----------
     oob
    (1 row)
    MyTest=# SELECT substring('foobar' from '#"o_b#"%' FOR '#');  --foobar不能完全匹配后面的模式,因此返回NULL。
     substring
    -----------

 

    (1 row)
 

 

七、數(shù)據(jù)類型格式化函數(shù):

    PostgreSQL格式化函數(shù)提供一套有效的工具用于把各種數(shù)據(jù)類型(日期/時間、integer、floating point和numeric)轉(zhuǎn)換成格式化的字符串以及反過來從格式化的字符串轉(zhuǎn)換成指定的數(shù)據(jù)類型。下面列出了這些函數(shù),它們都遵循一個公共的調(diào)用習慣:第一個參數(shù)是待格式化的值,而第二個是定義輸出或輸出格式的模板。

 

函數(shù) 返回類型 描述 例子
to_char(timestamp, text) text 把時間戳轉(zhuǎn)換成字串 to_char(current_timestamp, 'HH12:MI:SS')
to_char(interval, text) text 把時間間隔轉(zhuǎn)為字串 to_char(interval '15h 2m 12s', 'HH24:MI:SS')
to_char(int, text) text 把整數(shù)轉(zhuǎn)換成字串 to_char(125, '999')
to_char(double precision, text) text 把實數(shù)/雙精度數(shù)轉(zhuǎn)換成字串 to_char(125.8::real, '999D9')
to_char(numeric, text) text 把numeric轉(zhuǎn)換成字串 to_char(-125.8, '999D99S')
to_date(text, text) date 把字串轉(zhuǎn)換成日期 to_date('05 Dec 2000', 'DD Mon YYYY')
to_timestamp(text, text) timestamp 把字串轉(zhuǎn)換成時間戳 to_timestamp('05 Dec 2000', 'DD Mon YYYY')
to_timestamp(double) timestamp 把UNIX紀元轉(zhuǎn)換成時間戳 to_timestamp(200120400)
to_number(text, text) numeric 把字串轉(zhuǎn)換成numeric to_number('12,454.8-', '99G999D9S')

 

     1. 用于日期/時間格式化的模式:

 

模式 描述
HH 一天的小時數(shù)(01-12)
HH12 一天的小時數(shù)(01-12)
HH24 一天的小時數(shù)(00-23)
MI 分鐘(00-59)
SS 秒(00-59)
MS 毫秒(000-999)
US 微秒(000000-999999)
AM 正午標識(大寫)
Y,YYY 帶逗號的年(4和更多位)
YYYY 年(4和更多位)
YYY 年的后三位
YY 年的后兩位
Y 年的最后一位
MONTH 全長大寫月份名(空白填充為9字符)
Month 全長混合大小寫月份名(空白填充為9字符)
month 全長小寫月份名(空白填充為9字符)
MON 大寫縮寫月份名(3字符)
Mon 縮寫混合大小寫月份名(3字符)
mon 小寫縮寫月份名(3字符)
MM 月份號(01-12)
DAY 全長大寫日期名(空白填充為9字符)
Day 全長混合大小寫日期名(空白填充為9字符)
day 全長小寫日期名(空白填充為9字符)
DY 縮寫大寫日期名(3字符)
Dy 縮寫混合大小寫日期名(3字符)
dy 縮寫小寫日期名(3字符)
DDD 一年里的日子(001-366)
DD 一個月里的日子(01-31)
D 一周里的日子(1-7;周日是1)
W 一個月里的周數(shù)(1-5)(第一周從該月第一天開始)
WW 一年里的周數(shù)(1-53)(第一周從該年的第一天開始)

 

     2. 用于數(shù)值格式化的模板模式:

 

模式 描述
9 帶有指定數(shù)值位數(shù)的值
0 帶前導零的值
.(句點) 小數(shù)點
,(逗號) 分組(千)分隔符
PR 尖括號內(nèi)負值
S 帶符號的數(shù)值
L 貨幣符號
D 小數(shù)點
G 分組分隔符
MI 在指明的位置的負號(如果數(shù)字 < 0)
PL 在指明的位置的正號(如果數(shù)字 > 0)
SG 在指明的位置的正/負號

 

八、時間/日期函數(shù)和操作符:

    1. 下面是PostgreSQL中支持的時間/日期操作符的列表:

 

操作符 例子 結(jié)果
+ date '2001-09-28' + integer '7' date '2001-10-05'
+ date '2001-09-28' + interval '1 hour' timestamp '2001-09-28 01:00'
+ date '2001-09-28' + time '03:00' timestamp '2001-09-28 03:00'
+ interval '1 day' + interval '1 hour' interval '1 day 01:00'
+ timestamp '2001-09-28 01:00' + interval '23 hours' timestamp '2001-09-29 00:00'
+ time '01:00' + interval '3 hours' time '04:00'
- - interval '23 hours' interval '-23:00'
- date '2001-10-01' - date '2001-09-28' integer '3'
- date '2001-10-01' - integer '7' date '2001-09-24'
- date '2001-09-28' - interval '1 hour' timestamp '2001-09-27 23:00'
- time '05:00' - time '03:00' interval '02:00'
- time '05:00' - interval '2 hours' time '03:00'
- timestamp '2001-09-28 23:00' - interval '23 hours' timestamp '2001-09-28 00:00'
- interval '1 day' - interval '1 hour' interval '23:00'
- timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00' interval '1 day 15:00'
* interval '1 hour' * double precision '3.5' interval '03:30'
/ interval '1 hour' / double precision '1.5' interval '00:40'

 

    2. 日期/時間函數(shù):

 

函數(shù) 返回類型 描述 例子 結(jié)果
age(timestamp, timestamp) interval 減去參數(shù),生成一個使用年、月的"符號化"的結(jié)果 age('2001-04-10', timestamp '1957-06-13') 43 years 9 mons 27 days
age(timestamp) interval 從current_date減去得到的數(shù)值 age(timestamp '1957-06-13') 43 years 8 mons 3 days
current_date date 今天的日期    
current_time time 現(xiàn)在的時間    
current_timestamp timestamp 日期和時間    
date_part(text, timestamp) double 獲取子域(等效于extract) date_part('hour', timestamp '2001-02-16 20:38:40') 20
date_part(text, interval) double 獲取子域(等效于extract) date_part('month', interval '2 years 3 months') 3
date_trunc(text, timestamp) timestamp 截斷成指定的精度 date_trunc('hour', timestamp '2001-02-16 20:38:40') 2001-02-16 20:00:00+00
extract(field from timestamp) double 獲取子域 extract(hour from timestamp '2001-02-16 20:38:40') 20
extract(field from interval) double 獲取子域 extract(month from interval '2 years 3 months') 3
localtime time 今日的時間    
localtimestamp timestamp 日期和時間    
now() timestamp 當前的日期和時間(等效于 current_timestamp)    
timeofday() text 當前日期和時間    

 

    3. EXTRACT,date_part函數(shù)支持的field:

 

描述 例子 結(jié)果
CENTURY 世紀 EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13'); 20
DAY (月分)里的日期域(1-31) EXTRACT(DAY from TIMESTAMP '2001-02-16 20:38:40'); 16
DECADE 年份域除以10 EXTRACT(DECADE from TIMESTAMP '2001-02-16 20:38:40'); 200
DOW 每周的星期號(0-6;星期天是0) (僅用于timestamp) EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40'); 5
DOY 一年的第幾天(1 -365/366) (僅用于 timestamp) EXTRACT(DOY from TIMESTAMP '2001-02-16 20:38:40'); 47
HOUR 小時域(0-23) EXTRACT(HOUR from TIMESTAMP '2001-02-16 20:38:40'); 20
MICROSECONDS 秒域,包括小數(shù)部分,乘以 1,000,000。 EXTRACT(MICROSECONDS from TIME '17:12:28.5'); 28500000
MILLENNIUM 千年 EXTRACT(MILLENNIUM from TIMESTAMP '2001-02-16 20:38:40'); 3
MILLISECONDS 秒域,包括小數(shù)部分,乘以 1000。 EXTRACT(MILLISECONDS from TIME '17:12:28.5'); 28500
MINUTE 分鐘域(0-59) EXTRACT(MINUTE from TIMESTAMP '2001-02-16 20:38:40'); 38
MONTH 對于timestamp數(shù)值,它是一年里的月份數(shù)(1-12);對于interval數(shù)值,它是月的數(shù)目,然后對12取模(0-11) EXTRACT(MONTH from TIMESTAMP '2001-02-16 20:38:40'); 2
QUARTER 該天所在的該年的季度(1-4)(僅用于 timestamp) EXTRACT(QUARTER from TIMESTAMP '2001-02-16 20:38:40'); 1
SECOND 秒域,包括小數(shù)部分(0-59[1]) EXTRACT(SECOND from TIMESTAMP '2001-02-16 20:38:40'); 40
WEEK 該天在所在的年份里是第幾周。 EXTRACT(WEEK from TIMESTAMP '2001-02-16 20:38:40'); 7
YEAR 年份域 EXTRACT(YEAR from TIMESTAMP '2001-02-16 20:38:40'); 2001

 

4. 當前日期/時間:

    我們可以使用下面的函數(shù)獲取當前的日期和/或時間∶
 

復制代碼代碼如下:

    CURRENT_DATE
    CURRENT_TIME
    CURRENT_TIMESTAMP
    CURRENT_TIME (precision)
    CURRENT_TIMESTAMP (precision)
    LOCALTIME
    LOCALTIMESTAMP
    LOCALTIME (precision)
    LOCALTIMESTAMP (precision)

    該博客中提供的所有信息均源自PostgreSQL官方文檔,編寫該篇博客的主要目的是便于今后的查閱,特此聲明。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产精品视频男人的天堂| 亚洲国产你懂的| 日本在线中文电影| 水野朝阳av一区二区三区| 在线电影看在线一区二区三区| 草民午夜欧美限制a级福利片| 欧美日韩在线一区二区| 亚洲制服欧美中文字幕中文字幕| 蜜桃av一区二区三区| 毛片免费看不卡网站| 粉嫩高清一区二区三区精品视频| 一线天自拍视频| 婷婷久久综合九色综合伊人色| 国产精品永久| 欧美精品18videos性欧美| av激情亚洲男人天堂| 青青青在线观看视频| 99re视频在线观看| 日韩久久综合| 久久久久国产美女免费网站| 日本少妇全体裸体洗澡| 交换做爰国语对白| 国产视频97| www.国产在线| 欧美三级自拍| 午夜写真片福利电影网| 天天爽夜夜爽一区二区三区| 国精产品久拍自产在线网站| 亚洲成色www久久网站| 久热精品视频在线播放| 中文字幕在线看人| 另类欧美视频| 久草这里只有精品视频| 一区二区三区视频网| av免费观看大全| 欧美天堂一区二区三区| 亚洲高清无码久久| 97视频精彩视频在线观看| 亚洲一二三四五六区| 国产中文字幕一区二区三区| 久久久久久久久久久97| 国产偷自视频区视频一区二区| 国产v日产∨综合v精品视频| 亚州欧美一区三区三区在线| 精品国产欧美一区二区三区成人| 国产在线观看无码免费视频| 99热这里只有精品在线观看| 日韩视频在线播放| 香蕉久久夜色精品| 亚洲视频欧洲视频| 黄a大片av永久免费| 成人激情午夜影院| 国产极品美女高潮无套久久久| 精品人人人人| 久久久亚洲福利精品午夜| 国产精品av免费在线观看| 久久国产主播精品| 亚洲第一成人av| 国产成人拍精品视频午夜网站| 免费一级a毛片夜夜看| 成人中文字幕在线观看| 91精品在线观看入口| 超碰在线免费av| 色欲欲www成人网站| 日韩影院一区| 黄色网址免费在线| 午夜精品福利影院| 久久国产在线视频| 国产精品国产a级| 欧美毛片又粗又长又大| 欧美一级专区免费大片| 欧美高清性猛交| 久久久久久无码午夜精品直播| 久久的色偷偷| 精品亚洲成av人在线观看| 日韩日韩日韩日韩日韩| 亚洲人妖在线| 亚洲另类图片另类电影| 免费av小说| 色偷偷综合社区| 亚洲日本电影在线| 国产精品狼人久久影院观看方式| 初体验·韩国| 尤物yw午夜国产精品视频| 五月婷婷综合在线观看| 影音成人av| 免费久久久一本精品久久区| 欧美中文在线| 久草视频在线免费| 欧美人与性动交xxⅹxx| 少妇网站在线观看| 人体久久天天| 91蜜桃传媒精品久久久一区二区| 日本爱爱爱视频| 精品午夜久久福利影院| 91精品啪在线观看国产| 国产性生活网站| 日韩精品一级| 欧美专区福利免费| 亚洲人的天堂男人爽爽爽| 精品自拍偷拍| 在线观看高清免费视频| 在线成人国产| 激情视频网站在线观看| 日本高清不卡视频| 欧美日一区二区三区| 成人av小说网| 人人爱人人干婷婷丁香亚洲| 丰满人妻一区二区三区大胸| 精品自拍视频| 久久久综合激的五月天| 992tv人人草| 日本韩国欧美一区二区三区| 国产精品伦理一区二区三区| 亚洲一区三区| 麻豆国产尤物av尤物在线观看| 91蝌蚪在线| 国产鲁鲁视频在线观看免费| 青青免费在线视频| 欧美又粗又大又爽| 亚洲AV无码乱码国产精品牛牛| 日本一不卡视频| 老司机精品视频在线| 日韩欧美色视频| 久久这里都是精品| 日韩黄色片在线观看| 欧美+日本+国产+在线a∨观看| 一区二区的视频| 午夜不卡影院| 亚洲精品成人久久久998| 欧美性巨大欧美| 18性欧美xxxⅹ性满足| 秋霞午夜av一区二区三区| 风流少妇一区二区| 久久人人爽人人爽人人av| 亚洲欧美日韩精品久久久| 最新黄色av网站| 另类小说欧美激情| 蜜桃免费网站一区二区三区| 精品久久久久久中文字幕动漫| 一级全黄裸体片| 夜夜嗨aⅴ免费视频| 一级毛片精品毛片| 91人人澡人人爽人人精品| 99国产精品无码| 三级网站视频在在线播放| 中文字幕黄色片| 亚洲另类欧美日韩| 一区二区乱码| 卡一卡二国产精品| 免费视频国产一区| 性xxxfllreexxx少妇| 九九热在线视频免费观看| 蜜桃视频无码区在线观看| 91精品国产麻豆| 日本黄色录像片| 亚洲二区在线视频| 少妇久久久久久| 亚洲91久久| 深田咏美中文字幕| av资源中文色综合| 日韩一区二区在线观看视频播放| 亚洲综合伊人久久| 毛片网站大全| 在线观看毛片av| 日韩精品一区二区三区视频播放| 国产欧美久久久久久| 日韩精品视频免费看| 日韩亚洲国产中文字幕欧美| 免费成人美女女在线观看| 欧美一级片免费看| 黄色一区三区| 久久影院资源站| av网站大全在线| 午夜精品美女久久久久av福利| 亚洲自拍欧美另类| 一二三区高清| 免费激情视频网站| 国产欧美一区二区精品婷婷| 亚洲日本黄色片| 日本www在线观看视频| 免费福利视频一区| 中文字幕视频免费在线观看| 国产精品无码一区| 亚洲大胆美女视频| 婷婷激情四射五月天| 亚洲人成亚洲人成在线观看图片| 久久久视频免费观看| 福利资源在线观看| 久久精品99久久久久久| 一本大道色婷婷在线| 99久久久国产| 欧美在线视频一区二区| 欧美成人免费观看| 亚洲视频第一页| 久久亚洲不卡| 国产精品色婷婷视频| 欧美4khd| 97人妻精品一区二区三区动漫| 韩日欧美一区二区三区| 欧亚乱熟女一区二区在线| 中文字幕电影av| 久草在线最新视频| 日韩三级成人| 蜜桃视频m3u8在线观看| 国产精品永久久久久久久久久| 国产日本亚洲高清| 欧美日本一道本在线视频| 国产精品一区二区免费不卡| 亚洲爆乳无码一区二区三区| 亚洲AV无码成人片在线观看| 手机看片1024国产| 57pao国产成人免费| 亚洲视频三区| 99理论电影网| 国产精品女主播一区二区三区| 日韩美女福利视频| 在线看欧美日韩| 视频一区二区三区在线观看| 国产又粗又大又爽| 影音国产精品| 在线观看黄av| 亚洲天堂一区二区| 欧美色图另类小说| 乱亲女h秽乱长久久久| 好男人www社区| 成年人晚上看的视频| 亚洲午夜激情在线| 日韩一二三区不卡在线视频| 国产日韩欧美高清免费| 亚洲精品人妻无码| 91在线在线观看| 午夜视频在线观看国产| 日韩视频在线免费播放| 欧美日韩国产第一页| 日韩精品一区二区三区国语自制| 青娱乐国产在线视频| 日韩乱码一区二区三区| 日本三区在线观看| 五月综合色婷婷| 精品国产a一区二区三区v免费| 日韩av电影免费观看高清完整版| 久久综合亚洲色hezyo国产| 欧美日本精品在线| 麻豆精品国产91久久久久久| 欧美精品高清| 久久精品国产99国产精品| 91亚洲国产成人精品一区二区三| 97高清视频| 国产高清av片| 久久夜色邦福利网| 国产欧美一区二区| 欧美日韩你懂得| 热久久一区二区| 美国十次综合久久| 免费成人深夜夜行网站视频| 国内精彩免费自拍视频在线观看网址| av中文字幕免费观看| aa日韩免费精品视频一| 两女双腿交缠激烈磨豆腐| 91传媒视频在线观看| 欧美高清xxxxxkkkkk| 国产精品女同互慰在线看| av高清在线免费观看| 可以免费看毛片的网站| 精品一性一色一乱农村| 精品无码久久久久久久动漫| 国产精品自拍视频| 黄色在线一区| 高清毛片在线观看| 欧美激情综合色综合啪啪| 99视频在线免费观看| 免费在线欧美视频| 欧美最猛黑人猛交69| 欧美日韩伦理在线免费| 无码精品一区二区三区在线播放| 性欧美8khd高清极品| 91av福利视频| 午夜午夜精品一区二区三区文| 亚洲国产伊人| 精品国产凹凸成av人导航| 欧美性猛交xxxx乱大交少妇| 国产一区二区在线视频你懂的| 97色成人综合网站| 精品亚洲精品福利线在观看| aa在线观看视频| 波多野结衣在线一区二区| www.超碰97| 97超级在线观看免费高清完整版电视剧| 日韩一区二区免费在线电影| 国产肉丝袜一区二区| 欧美一区二区三区四区视频| 天天操天天操天天干| 精品资源在线看| 日本在线播放视频| 亚洲精品无码久久久久久久| 亚洲成人tv网| 日韩三级视频在线看| gv天堂gv无码男同在线观看| 波多野结衣影院| 国产免费av网站| 国产做受高潮漫动| 欧美国产成人精品| 丰满女人性猛交| 在线观看精品一区二区三区| 欧美国产日产图区| 欧美亚洲一区| 在线观看黄网站免费继续| 国产亚洲一区二区三区啪| 国产亚洲精品美女久久久| 超碰91在线| 久久久国产免费| 国产乱人视频免费播放| 国产调教在线观看| 日本视频一区二区在线观看| 91性高湖久久久久久久久_久久99| 国产精品嫩草影院8vv8| 免费在线观看国产精品| 国产日韩欧美电影| 久久影院资源站| 欧美日韩国产精品一区二区三区| 黄色亚洲在线| 国产片高清在线观看| xvideos亚洲人网站| 亚洲国产高清高潮精品美女| 亚洲精品国产欧美| 午夜性色一区二区三区免费视频| 久久福利影院|