当我们这些使用Rails的人看到例如5.weeks.from_nowor3.days.ago + 2.hours时并不会感到惊讶。同样,PostgreSQL也可以做到,你可以通过简单调用PostgreSQL内置函数来实现相同的功能。
相关阅读:PostgreSQL删除表中重复数据行 http://www.linuxidc.com/Linux/2013-07/87780.htmPostgreSQL数据库连接池PgBouncer的搭建 http://www.linuxidc.com/Linux/2013-06/85928.htmWindows平台编译 PostgreSQL http://www.linuxidc.com/Linux/2013-05/85114.htmPostgreSQL备份心得笔记 http://www.linuxidc.com/Linux/2013-04/82812.htm
PostgreSQL 的详细介绍:请点这里
PostgreSQL 的下载地址:请点这里当前时间/日期/时间戳获取当前时间的方式有很多种,在这之前我们需要知道以下两种类型的区别:
- 总是返回当前的值 (clock_timestamp())
- 总是返回当前值,但在事务中它返回的是事务开始的时间(now())
让我们看下面这个例子postgres=# BEGIN;
postgres=# SELECT now();
now
-------------------------------
2013-08-26 12:17:43.182331+02postgres=# SELECT now();
now
-------------------------------
2013-08-26 12:17:43.182331+02postgres=# SELECT clock_timestamp();
clock_timestamp
-------------------------------
2013-08-26 12:17:50.698413+02postgres=# SELECT clock_timestamp();
clock_timestamp
-------------------------------
2013-08-26 12:17:51.123905+02你会发现,语句执行时候clock_timestamp()的返回值每次都发生了改变,但是now()总是返回相同的值。当你需要考虑时区时,你应该特别注意这两个函数差异。时间区间:比如3天前使用interval操作符你可以轻松的构建一个时间区间,例如
- interval "1 day"
- interval "5 days"
- interval "5 days" + interval "3 hours"
- interval "5 days 3 hours"
你可以看到,我们可以用interval操作符来简单的进行数学运算,这特别适合于构建例如3天前这样的时间区间,比如:postgres=# SELECT now() - interval "3 days";
?column?
-------------------------------
2013-08-23 12:23:40.069717+02获取星期几有些时候对于一个给定的时间,你仅仅只想知道的是这天是星期几或者是它属于那个世纪的更或者你只想知道它是一年中的第几天。PostgreSQL中的extract()函数提供了这种功能。如下例子是在8月26日 星期一进行测试的。postgres=# SELECT extract(DAY FROM now());
date_part
-----------
26postgres=# SELECT extract(DOW FROM now());
date_part
-----------
1extract()还有其他更强大的功能,详情请参阅官方文档,在这里只列举了一小部分:
- day
- century
- dow(day of week)
- doy(day of year)
- minute
- month
- year
Oracle常用数据类型和完整性约束Oracle大数据量查询实际分析相关资讯 PostgreSQL数据库 PostgreSQL日期
- PostgreSQL9 连接数据库的连接信息 (06/12/2015 10:24:57)
| - PostgreSQL数据库备份与恢复技术比 (12/11/2014 20:22:04)
|
本文评论 查看全部评论 (0)