中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PostgreSQL數據庫中對數據類型進行格式化

發布時間:2020-12-30 14:52:09 來源:億速云 閱讀:376 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關怎么在PostgreSQL數據庫中對數據類型進行格式化,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

數據類型格式化函數:

PostgreSQL格式化函數提供一套有效的工具用于把各種數據類型(日期/時間、integer、floating point和numeric)轉換成格式化的字符串以及反過來從格式化的字符串轉換成指定的數據類型。

下面列出了這些函數,它們都遵循一個公共的調用習慣:第一個參數是待格式化的值,而第二個是定義輸出或輸出格式的模板。

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

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

模式描述
HH一天的小時數(01-12)
HH12一天的小時數(01-12)
HH24一天的小時數(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一個月里的周數(1-5)(第一周從該月第一天開始)
WW一年里的周數(1-53)(第一周從該年的第一天開始)

2. 用于數值格式化的模板模式:

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

時間/日期函數和操作符:

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

操作符例子結果
+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. 日期/時間函數:

函數返回類型描述例子結果
age(timestamp, timestamp)interval減去參數,生成一個使用年、月的”符號化”的結果age(‘2001-04-10', timestamp ‘1957-06-13')43 years 9 mons 27 days
age(timestamp)interval從current_date減去得到的數值age(timestamp ‘1957-06-13')43 years 8 mons 3 days
current_datedate今天的日期

current_timetime現在的時間

current_timestamptimestamp日期和時間

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
localtimetime今日的時間

localtimestamptimestamp日期和時間

now()timestamp當前的日期和時間(等效于 current_timestamp)

timeofday()text當前日期和時間

3. EXTRACT,date_part函數支持的field:

描述例子結果
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年份域除以10EXTRACT(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秒域,包括小數部分,乘以 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秒域,包括小數部分,乘以 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數值,它是一年里的月份數(1-12);對于interval數值,它是月的數目,然后對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秒域,包括小數部分(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. 當前日期/時間:

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

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

看完上述內容,你們對怎么在PostgreSQL數據庫中對數據類型進行格式化有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗江县| 鸡泽县| 固镇县| 蕲春县| 岳阳市| 丹东市| 江华| 安塞县| 桂东县| 溧阳市| 安康市| 英德市| 建水县| 长春市| 射阳县| 石狮市| 定南县| 兰考县| 闸北区| 孝义市| 托克逊县| 台东县| 孟津县| 双辽市| 莫力| 淅川县| 抚顺市| 弥渡县| 新安县| 宣威市| 白城市| 宝清县| 绥宁县| 伊吾县| 翼城县| 苍南县| 墨脱县| 西宁市| 锦州市| 文水县| 迁西县|