PostgreSQL 的日期函数用法举例

最近偶有开发同事咨询 PostgreSQL 日期函数,对日期处理不太熟悉,今天详细看了下手册的日期函数,整理如下,供参考。

一 取当前日期/时间函数

取当前时间

1
2
3
4
5
6
7
8
9
10
skytf=> select now();  
now
-------------------------------
2011-06-03 14:45:43.633466+08
(1 row)

skytf=> select current_timestamp;
now
-------------------------------
2011-06-03 14:46:58.768399+08

取当前时间的日期

1
2
3
4
5
skytf=> select current_date;  
date
------------
2011-06-03
(1 row)

取当前具体时间 (除去日期)

1
2
3
4
5
skytf=> select current_time;  
timetz
--------------------
14:46:29.404942+08
(1 row)

二 日期的加减

1
2
3
4
5
skytf=> select now();  
now
-------------------------------
2011-06-03 14:54:04.771193+08
(1 row)

表示三天后

1
2
3
4
5
skytf=> select now() + interval '3 day';  
?column?
-------------------------------
2011-06-06 14:54:06.119683+08
(1 row)

表示三天前

1
2
3
4
5
skytf=> select now() - interval '3 day';  
?column?
-------------------------------
2011-05-31 14:54:10.060558+08
(1 row)

表示1小时后

1
2
3
4
5
skytf=> select now() + interval '1 hour';  
?column?
-------------------------------
2011-06-03 15:55:24.600172+08
(1 row)

表示1小时前

1
2
3
4
5
skytf=> select now() - interval '1 hour';  
?column?
-------------------------------
2011-06-03 13:55:25.799537+08
(1 row)

表示10分钟后

1
2
3
4
5
skytf=> select now() + interval '10 minutes';  
?column?
-------------------------------
2011-06-03 15:06:23.363667+08
(1 row)

表示10分钟前

1
2
3
4
skytf=> select now() - interval '10 minutes';  
?column?
-------------------------------
2011-06-03 14:46:13.899526+08

三 取时间字段的部分值

在开发过程中,经常要取日期的年,月,日,小时等值,PostgreSQL 提供一个非常便利的EXTRACT函数。

EXTRACT 函数解释
EXTRACT(field FROM source): field 表示取的时间对象, source 表示取的日期来源,类型为 timestamp。

下面是一些例子,如下:

取年份

1
2
3
4
5
skytf=> select extract (year from now());  
date_part
-----------
2011
(1 row)

取月份

1
2
3
4
5
skytf=> select extract (month from now());  
date_part
-----------
6
(1 row)

取day

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
skytf=> select extract(day from now());  
date_part
-----------
3
(1 row)

skytf=> select extract(day from timestamp '2011-06-03');
date_part
-----------
3
(1 row)

skytf=> select timestamp '2011-06-03';
timestamp
---------------------
2011-06-03 00:00:00
(1 row)

取小时

1
2
3
4
5
skytf=> select extract (hour from now());  
date_part
-----------
14
(1 row)

取分钟

1
2
3
4
5
skytf=> select extract (minute from now());  
date_part
-----------
59
(1 row)

取秒

1
2
3
4
5
skytf=> select extract (second from now());  
date_part
-----------
46.039333
(1 row)

取所在哪个星期

1
2
3
4
5
skytf=> select extract (week from now());  
date_part
-----------
22
(1 row)

四 总结

上面只是 PostgreSQL 日期函数的基本用法,希望这些对大家应用 PostgreSQL 起到一定作用。

原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/236402.html

(0)
上一篇 2022年1月24日
下一篇 2022年1月24日

相关推荐

发表回复

登录后才能评论