- 字符串拼接, 使用兩豎符號
||
SELECT 'Hello, '|| 'world!'
- 日期轉(zhuǎn)字符串
SELECT to_char(to_timestamp(時間戳/1000), 'yyyy-mm-dd hh24:mi:ss')
- 字符串轉(zhuǎn)時間
SELECT to_timestamp('2022-07-27 08:08:00', 'yyyy-mm-dd hh24:mi:ss')
- 日期轉(zhuǎn)時間戳
select (extract (epoch from to_timestamp('2022-07-27', 'yyyy-mm-dd')) * 1000)
日期格式化字符表
字符 | 含義 |
---|---|
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字符) |
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)(第一周從該年的第一天開始) |
EXTRACT 和 date_part函數(shù)可抽取的字段
域 | 描述 | 例子 | 結(jié)果 |
---|---|---|---|
epoch | 紀(jì)元, 乘以1000即是時間戳 | EXTRACT(epoch FROM TIMESTAMP '2000-01-01 00:00:00') * 1000; | 946684800000 |
CENTURY | 世紀(jì) | 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 |
其他轉(zhuǎn)換函數(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_number(text, text) | numeric | 把字串轉(zhuǎn)換成numeric | to_number('12,454.8-', '99G999D9S') |
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紀(jì)元轉(zhuǎn)換成時間戳 | to_timestamp(200120400) |
數(shù)字格式化字符
字符 | 含義 |
---|---|
9 | 帶有指定數(shù)值位數(shù)的值 |
0 | 帶前導(dǎo)零的值 |
.(句點) | 小數(shù)點 |
,(逗號) | 分組(千)分隔符 |
PR | 尖括號內(nèi)負(fù)值 |
S | 帶符號的數(shù)值 |
L | 貨幣符號 |
D | 小數(shù)點 |
G | 分組分隔符 |
MI | 在指明的位置的負(fù)號(如果數(shù)字 < 0) |
PL | 在指明的位置的正號(如果數(shù)字 > 0) |
SG | 在指明的位置的正/負(fù)號 |