postgresql 數(shù)據(jù)類型轉(zhuǎn)換_第1頁
postgresql 數(shù)據(jù)類型轉(zhuǎn)換_第2頁
postgresql 數(shù)據(jù)類型轉(zhuǎn)換_第3頁
postgresql 數(shù)據(jù)類型轉(zhuǎn)換_第4頁
postgresql 數(shù)據(jù)類型轉(zhuǎn)換_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、postgresql 數(shù)據(jù)類型轉(zhuǎn)換,日期操作函數(shù)各種數(shù)據(jù)類型(日期/時間、integer、floating point和numeric)轉(zhuǎn)換成格式化的字符串以及反過來從格式化的字符串轉(zhuǎn)換成指定的數(shù)據(jù)類型。下面列出了這些函數(shù),它們都遵循一個公共的調(diào)用習(xí) 慣:第一個參數(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(in

2、terval '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ù)/雙精度數(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_da

3、te('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紀(jì)元轉(zhuǎn)換成時間戳to_timestamp(200120400)to_number(text, text)numeric把字串轉(zhuǎn)換成numericto_number('12,454.8-', '99G999D9S&

4、#39;)用于日期/時間格式化的模式:模式描述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正午標(biāo)識(大寫)Y,YYY帶逗號的年(4和更多位)YYYY年(4和更多位)YYY年的后三位YY年的后兩位Y年的最后一位MONTH全長大寫月份名(空白填充為9字符)Month全長混合大小寫月份名(空白填充為9字符)month全長小寫月份名(空白填充為9字符)MON大寫縮寫月份名(3字符)Mon縮寫混合大小寫月份名(3字符)mon小寫縮寫月份名(3

5、字符)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)(第一周從該年的第一天開始)下面是PostgreSQL中支持的時間/日期操作符的列表:操作符例子結(jié)果+date '2001-09-28' + integer

6、 '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'+time

7、stamp '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

8、 '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'-tim

9、estamp '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 h

10、our' * double precision '3.5'interval '03:30'/interval '1 hour' / double precision '1.5'interval '00:40'postgresql 字符串轉(zhuǎn)整數(shù) int、integerpostgresql 字符串轉(zhuǎn)整數(shù) int、integer code1234567-把'1234'轉(zhuǎn)成整數(shù)select cast('1234' as integer ) ;-用substring截取字符串

11、,從第8個字符開始截取2個字符:結(jié)果是12select cast(substring('1234abc12',8,2) as integer)-使用to_number函數(shù)來轉(zhuǎn)換成整數(shù)-to_number(text, text)  返回的類型 numeric     把字串轉(zhuǎn)換成numeric   to_number('12,454.8-', '99G999D9S')select to_number('12121','999999999')用于數(shù)值

12、格式化的模板模式:模式     描述9     帶有指定數(shù)值位數(shù)的值0     帶前導(dǎo)零的值.(句點(diǎn))     小數(shù)點(diǎn),(逗號)     分組(千)分隔符PR     尖括號內(nèi)負(fù)值S     帶符號的數(shù)值L     貨幣符號D     小數(shù)點(diǎn)G     分組分隔符MI   

13、60; 在指明的位置的負(fù)號(如果數(shù)字 < 0)PL     在指明的位置的正號(如果數(shù)字 > 0)SG     在指明的位置的正/負(fù)號postgresql 獲取當(dāng)前時間 ,操作當(dāng)前時間current_date 今天的日期例子:sql: select current_dateresult:"2012-12-17"current_time 現(xiàn)在的時間例子:sql: select current_timeresult:"18:16:09.984+08"

14、;current_timestamp 日期和時間例子:sql: select current_timestampresult:"2012-12-17 18:17:03.015+08"postgresql windows下修改帳號密碼 (圖文)重新設(shè)置postgres用戶的密碼方法:        1、關(guān)閉數(shù)據(jù)庫服務(wù)        2、進(jìn)入數(shù)據(jù)庫的工作空間目錄 (如果是建庫是沒有另外指定,應(yīng)該就是postgresql安

15、裝目錄下的 data 目錄)        3、編輯修改文件 pg_hba.conf, 把連接權(quán)限設(shè)置的 md5 加密方式 改成 trust              以我的為例,原本設(shè)置是# IPv4 local connections: host    all        

16、 all         127.0.0.1/32           md5修改為# IPv4 local connections: host    all         all         127.0.0.1/

17、32           trust          4、重新新啟動postgresql數(shù)據(jù)庫服務(wù)          5、可以不用密碼就能用postgres用戶登陸,然后執(zhí)行修改用戶密碼的操作         

18、0;         alter user postgres with password 'foobar'          6、修改 pg_hba.conf 文件,改回到 md5 方式,再重啟數(shù)據(jù)庫服務(wù)設(shè)置完成。postgresql 日期計(jì)算,時間加減 方法在PostgreSQL中可以直接對時間進(jìn)行加減運(yùn)算:、SELECT now():timestamp + '1 year'  -當(dāng)

19、前時間加1年SELECT now():timestamp + '1 month'  -當(dāng)前時間加一個月SELECT now():timestamp + '1 day'  -當(dāng)前時間加一天SELECT now():timestamp + '1 hour'  -當(dāng)前時間加一個小時SELECT now():timestamp + '1 min'  -當(dāng)前時間加一分鐘SELECT now():timestamp + '1 sec'  -加一秒鐘select now():ti

20、mestamp + '1 year 1 month 1 day 1 hour 1 min 1 sec'  -加1年1月1天1時1分1秒SELECT now():timestamp + (col | ' day'):interval FROM table -把col字段轉(zhuǎn)換成天 然后相加PostgreSQL 替換字符串方法及字符串操作函數(shù)下面是PostgreSQL中提供的字符串操作符列表:替換字符的例子:update ab set a=replace(a,'aaa','0')把a(bǔ)字段里面的aaa字符串替換成0函數(shù)返回類型描

21、述例子結(jié)果string | stringtext字串連接'Post' | 'greSQL'PostgreSQLbit_length(string)int字串里二進(jìn)制位的個數(shù)bit_length('jose')32char_length(string)int字串中的字符個數(shù)char_length('jose')4convert(string using conversion_name)text使用指定的轉(zhuǎn)換名字改變編碼。convert('PostgreSQL' using iso_8859_1_to_utf8)

22、9;PostgreSQL'lower(string)text把字串轉(zhuǎn)化為小寫lower('TOM')tomoctet_length(string)int字串中的字節(jié)數(shù)octet_length('jose')4overlay(string placing string from int for int)text替換子字串overlay('Txxxxas' placing 'hom' from 2 for 4)Thomasposition(substring in string)int指定的子字串的位置position(

23、9;om' in 'Thomas')3substring(string from int for int)text抽取子字串substring('Thomas' from 2 for 3)homsubstring(string from pattern)text抽取匹配 POSIX 正則表達(dá)式的子字串substring('Thomas' from '.$')massubstring(string from pattern for escape)text抽取匹配SQL正則表達(dá)式的子字串substring('Thoma

24、s' from '%#"o_a#"_' for '#')omatrim(leading | trailing | both characters from string)text從字串string的開頭/結(jié)尾/兩邊/ 刪除只包含characters(缺省是一個空白)的最長的字串trim(both 'x' from 'xTomxx')Tomupper(string)text把字串轉(zhuǎn)化為大寫。upper('tom')TOMascii(text)int參數(shù)第一個字符的ASCII碼ascii(&

25、#39;x')120btrim(string text , characters text)text從string開頭和結(jié)尾刪除只包含在characters里(缺省是空白)的字符的最長字串btrim('xyxtrimyyx','xy')trimchr(int)text給出ASCII碼的字符chr(65)Aconvert(string text, src_encoding name, dest_encoding name)text把字串轉(zhuǎn)換為dest_encodingconvert( 'text_in_utf8', 'UTF8

26、9;, 'LATIN1')以ISO 8859-1編碼表示的text_in_utf8initcap(text)text把每個單詞的第一個子母轉(zhuǎn)為大寫,其它的保留小寫。單詞是一系列字母數(shù)字組成的字符,用非字母數(shù)字分隔。initcap('hi thomas')Hi Thomaslength(string text)intstring中字符的數(shù)目length('jose')4lpad(string text, length int , fill text)text通過填充字符fill(缺省時為空白),把string填充為長度length。 如果strin

27、g已經(jīng)比length長則將其截?cái)?在右邊)。lpad('hi', 5, 'xy')xyxhiltrim(string text , characters text)text從字串string的開頭刪除只包含characters(缺省是一個空白)的最長的字串。ltrim('zzzytrim','xyz')trimmd5(string text)text計(jì)算給出string的MD5散列,以十六進(jìn)制返回結(jié)果。md5('abc') repeat(string text, number int)text重復(fù)stri

28、ng number次。repeat('Pg', 4)PgPgPgPgreplace(string text, from text, to text)text把字串string里出現(xiàn)地所有子字串from替換成子字串to。replace('abcdefabcdef', 'cd', 'XX')abXXefabXXefrpad(string text, length int , fill text)text通過填充字符fill(缺省時為空白),把string填充為長度length。如果string已經(jīng)比length長則將其截?cái)唷pad('hi', 5, 'xy')hixyxrtrim(string text , character text)text從字串string的結(jié)尾刪除只包含character(缺省是個空白)的最長的字rtrim('trimxxxx','x')trimsplit_part(string text, delimiter text, field int)text根據(jù)delimiter分隔string返回生成的第field個子字串(1 Base)。split_part('abcdefghi&#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論