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

一 取当前日期的函数

--取当前时间
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

--取当前时间的日期
skytf=> select current_date;
    date   
------------
 2011-06-03
(1 row)

--取当前具体时间 (除去日期)
skytf=> select current_time;
       timetz      
--------------------
 14:46:29.404942+08
(1 row)

二 日期的加减

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

--表示三天后
skytf=> select now() + interval '3 day';
           ?column?           
-------------------------------
 2011-06-06 14:54:06.119683+08
(1 row)

--表示三天前
skytf=> select now() - interval '3 day';
           ?column?           
-------------------------------
 2011-05-31 14:54:10.060558+08
(1 row)

--表示1小时后
skytf=> select now() + interval '1 hour';
           ?column?           
-------------------------------
 2011-06-03 15:55:24.600172+08
(1 row)

--表示1小时前
skytf=> select now() - interval '1 hour';
           ?column?           
-------------------------------
 2011-06-03 13:55:25.799537+08
(1 row)

(1 row)

--表示10分钟后
skytf=> select now() + interval '10 minutes';
           ?column?           
-------------------------------
 2011-06-03 15:06:23.363667+08
(1 row)

--表示10分钟前
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。
     下面是一些例子。
  
--取年份
skytf=> select extract (year from now());
 date_part
-----------
      2011
(1 row)  
  
  
--取月份  
skytf=> select extract (month from now());
 date_part
-----------
         6
(1 row)

--取day
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)

--取小时
skytf=> select extract (hour from now());
 date_part
-----------
        14
(1 row)

--取分钟
skytf=> select extract (minute from now());
 date_part
-----------
        59
(1 row)

--取秒
skytf=> select extract (second from now());
 date_part
-----------
 46.039333
(1 row)

--取所在哪个星期
skytf=> select extract (week from now());
 date_part
-----------
        22
(1 row)

四 总结

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

PostgreSQL 的日期函数用法举例的更多相关文章

  1. 【转】awk 里的substr函数用法举例

    awk 里的substr函数用法举例: 要截取的内容:2007-08-04 04:45:03.084 - SuccessfulTradeResult(status: 1, currencyPair: ...

  2. Sql server日期函数用法

    SQL日期函数 SQL日期函数中的类型码可以为0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 ,20,21,22,23,24,25,100,101,102,103,104,105 ...

  3. SQLServer日期函数用法

    --1.显示本月第一天 ,) ),)) --2.显示本月最后一天 ,),,))) ,,,)) --3.上个月的最后一天 ,,)) --4.本月的第一个星期一 , ) --5.本年的第一天 ,) --6 ...

  4. c++ 字符串函数用法举例

    1. substr() 2. replace() 例子:split() 字符串切割: substr 函数原型: , size_t n = npos ) const; 解释:抽取字符串中从pos(默认为 ...

  5. js 日期函数用法总结

    1 创建Date对象,用于处理日期和时间 var date=new Date(); Date对象会把当前日期和时间保存为初始值. 还可以设置其它参数初始化 Date对象: new Date(" ...

  6. Oracle中的4大空值处理函数用法举例

    nvl(exp1,exp2):                           如果exp1为空,则返回exp2:否则返回exp1nvl2(exp1,exp2,exp3):             ...

  7. iframe调用父页面函数用法举例

    iframe如何调用父页面函数. window.parent.xxxxx();//xxxxx()代表父页面方法具体列子如下,其中包括easyUI的右键和单击事件parent.jspbody部分代码 & ...

  8. PostgreSQL的时间/日期函数使用

    PostgreSQL的常用时间函数使用整理如下: 一.获取系统时间函数 1.1 获取当前完整时间 select now(); david=# select now(); now ----------- ...

  9. [转] PostgreSQL的时间/日期函数使用

    PS:http://blog.csdn.net/love_rongrong/article/details/6712883 字符串模糊比较 日期类型的模糊查询是不能直接进行的,要先转换成字符串然后再查 ...

随机推荐

  1. 改变bootstrapSwitch按钮状态

    $('.switch-state').bootstrapSwitch('state',true);

  2. hdu-2563

    统计问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. c++中IO输入输出流总结<一>

    1 io类图关系 1.1 简化形式 1.1.2补充 iostream: istream:从流中读取 ostream:写入到流 iosteram:读写流 fstream: ifstream:从文件读 o ...

  4. Flutter实战视频-移动电商-46.详细页_自定义TabBar Widget

    46.详细页_自定义TabBar Widget 主要实现详情和评论的tab provide定义变量 自己做一个tab然后用provide去控制 定义两个变量来判断是左侧选中了还是右侧选中了.并定义一个 ...

  5. 4-1数据类型转换的基本概念 & 4-2 & 4-3数据类型转换案例 & 4-4习题

    4-1数据类型转换的基本概念 253是int类型的,赋值给长整型的n 这种就是强制的类型转换 自动类型转换又叫做饮食类型转换,因为他的转换我们是看不到的 实线表示无数据丢失的 虚线在转换时, doub ...

  6. java8--List转为Map、分组、过滤、求和等操作

    利用java8新特性,可以用简洁高效的代码来实现一些数据处理~ 定义1个Apple对象: public class Apple { private Integer id; private String ...

  7. Golang : flag 包简介

    在 Golang 程序中有很多种方法来处理命令行参数.简单的情况下可以不使用任何库,直接处理 os.Args:其实 Golang 的标准库提供了 flag 包来处理命令行参数:还有第三方提供的处理命令 ...

  8. 51nod 1068【简单博弈】

    思路 手动打表, N 1 : A出1 A胜: 2 : A出2 A胜: 3 : A只能出2的整数幂&&这个数<=3,所以只能出1,2:A出1的时候,B就是2的情况,B胜:A出2的时 ...

  9. 51nod1179【思维】

    题意: 给你n个数,求两两之间的最大GCD: 思路: n太大,然后感觉是分解质因子,但是感觉分解质因子还是搞不出谁和谁的GCD: 但是可以发现,GCD给了一个范围1e6,所以能不能枚举GCD,然后看看 ...

  10. CF888E Maximum Subsequence(meet in the middle)

    给一个数列和m,在数列任选若干个数,使得他们的和对m取模后最大( \(1<=n<=35\) , \(1<=m<=10^{9}\)) 考虑把数列分成两份,两边分别暴力求出所有的可 ...