• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >PostgreSQL > PostgreSQL中常用的时间日期脚本使用教程

PostgreSQL中常用的时间日期脚本使用教程

作者:目翟 字体:[增加 减小] 来源:互联网 时间:2017-05-11

目翟通过本文主要向大家介绍了制作postgresql脚本,postgresql 脚本,postgresql 日期函数,postgresql 日期,postgresql 当前日期等相关知识,希望本文的分享对您有所帮助

获取系统时间函数

select now();        --2013-11-28 16:20:25.259715+08
select current_timestamp;  --2013-11-28 16:20:38.815466+08
select current_date;     --2013-11-28
select current_time;     --16:21:08.981171+08
</div>

时间的计算
--使用interval

select now()+interval '2 day'; --2013-11-30 16:21:47.610118+08 2天后
select now()-interval '2 day'; --2013-11-26 16:22:03.390593+08 2天前
select now()+interval '2 hour'; --2013-11-28 18:22:14.578733+08 2小时后
</div>

-- interval可以不写,其值可以是

-- Abbreviation   Meaning 
-- Y           Years 
-- M           Months (in the date part) 
-- W          Weeks 
-- D           Days 
-- H           Hours 
-- M        Minutes (in the time part)

</div>

时间的截取 
--使用extract extract(interval,timestamp);

select extract(year from now());    --2013
select extract(mon from now());     --5月份
</div>

时间的转换

select timestamp '2012-05-12 18:54:54';         --2012-05-12 18:54:54
select date '2012-05-12 18:54:54';            --2012-05-12
select time '2012-05-12 18:54:54';           --18:54:54
select TIMESTAMP WITH TIME ZONE '2012-05-12 18:54:54'  --2012-05-12 18:54:54+08
</div>

与unix时间戳的转换 

 SELECT TIMESTAMP 'epoch' + 1341174767 * INTERVAL '1 second'; 
--2012-07-01 20:32:47
</div>

实例
1.当前时间/日期/时间戳
获取当前时间的方式有很多种,在这之前我们需要知道以下两种类型的区别:
总是返回当前的值 (clock_timestamp())
总是返回当前值,但在事务中它返回的是事务开始的时间(now())
让我们看下面这个例子

postgres=# BEGIN; 
postgres=# SELECT now(); 
       now 
------------------------------- 
 2013-08-26 12:17:43.182331+02 
 
postgres=# SELECT now(); 
       now 
------------------------------- 
 2013-08-26 12:17:43.182331+02 
 
postgres=# SELECT clock_timestamp(); 
    clock_timestamp 
------------------------------- 
 2013-08-26 12:17:50.698413+02 
 
postgres=# SELECT clock_timestamp(); 
    clock_timestamp 
------------------------------- 
 2013-08-26 12:17:51.123905+02 
</div>

你会发现,语句执行时候clock_timestamp()的返回值每次都发生了改变,但是now()总是返回相同的值。当你需要考虑时区时,你应该特别注意这两个函数差异。

2.时间区间:比如3天前
使用interval操作符你可以轻松的构建一个时间区间,例如

interval '1 day'
interval '5 days'
interval '5 days' + interval '3 hours'
interval '5 days 3 hours'
</div>

你可以看到,我们可以用interval操作符来简单的进行数学运算,这特别适合于构建例如3天前这样的时间区间,比如:

postgres=# SELECT now() - interval '3 days'; 
      ?column? 
------------------------------- 
 2013-08-23 12:23:40.069717+02 
</div>

3.获取星期几
有些时候对于一个给定的时间,你仅仅只想知道的是这天是星期几或者是它属于那个世纪的更或者你只想知道它是一年中的第几天。PostgreSQL中的extract()函数提供了这种功能。
如下例子是在8月26日 星期一进行测试的。

postgres=# SELECT extract(DAY FROM now()); 
 date_part 
----------- 
    26 
 
postgres=# SELECT extract(DOW FROM now()); 
 date_part 
----------- 
     1   
</div>

4.时区转换
有些时候,时区转换对于特定时间在不同时区显示特别有用。AT TIME ZONE提供了这种功能,它是如何做到的?我们将在一个事务中进行演示,因为同一事务中now()函数总是返回相同的值,从而我们可以很容易看到同一时间在不同时区显示的差别。

postgres=# BEGIN; 
BEGIN 
postgres=# SELECT now(); 
       now 
------------------------------- 
 2013-08-26 12:39:39.122218+02 
 
postgres=# SELECT now() AT TIME ZONE 'GMT'; 
     timezone 
---------------------------- 
 2013-08-26 10:39:39.122218 
 
postgres=# SELECT now() AT TIME ZONE 'GMT+1'; 
     timezone 
---------------------------- 
 2013-08-26 09:39:39.122218 
 
postgres=# SELECT now() AT TIME ZONE 'PST'; 
     timezone 
---------------------------- 
 2013-08-26 02:39:39.122218 
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PostgreSQL中常用的时间日期脚本使用教程
  • CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享

相关文章

  • 2017-05-11windows PostgreSQL 9.1 安装详细步骤
  • 2017-05-11PostgreSQL教程(七):函数和操作符详解(3)
  • 2017-05-11Windows下PostgreSQL安装图解
  • 2017-05-11在windows下手动初始化PostgreSQL数据库教程
  • 2017-05-11PostgreSQL新手入门教程
  • 2017-05-11PostgreSQL教程(十六):系统视图详解
  • 2017-05-11PostgreSQL教程(八):索引详解
  • 2017-05-11用PostgreSQL数据库做地理位置app应用
  • 2017-05-11Postgresql ALTER语句常用操作小结
  • 2017-05-11PostgreSQL教程(十九):SQL语言函数

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • PostgreSQL教程(七):函数和操作符详解(3)
    • PostgreSQL教程(一):数据表详解
    • PostgreSQL教程(十七):客户端命令(1)
    • PostgreSQL中调用存储过程并返回数据集实例
    • 解决PostgreSQL服务启动后占用100% CPU卡死的问题
    • PostgreSQL 数据库性能提升的几个方面
    • PostgreSQL之分区表(partitioning)
    • PostgreSQL教程(十):性能提升技巧
    • PostgreSQL 安装和简单使用第1/2页
    • PostgreSQL教程(十四):数据库维护

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有