[Posts] PostgreSQL of time / date functions using PostgreSQL time / date functions use

PostgreSQL time / date functions use

 
HTTPS: // www.cnblogs.com/mchina/archive/2013/04/15/3010418.html 

a good article on this blog directory than ten times 

additional time must be added after the interval before can not add 

Le had a rub of.

 

PostgreSQL common time functions use are summarized as follows:

First, access to the system function of time

Get the current 1.1 full time

select now();

Copy the code
david=# select now();
              now              
-------------------------------
 2013-04-12 15:39:40.399711+08
(1 row)

david=# 
Copy the code

current_timestamp with now () function is equivalent.

Copy the code
david=# select current_timestamp;
              now              
-------------------------------
 2013-04-12 15:40:22.398709+08
(1 row)

david=# 
Copy the code

1.2 Get the current date

select current_date;

Copy the code
david=# select current_date;
    date    
------------
 2013-04-12
(1 row)

david=# 
Copy the code

1.3 Get the current time

select current_time;

Copy the code
david=# select current_time;
       timetz       
--------------------
 15:43:31.101726+08
(1 row)

david=#
Copy the code

Second, the calculation time

Copy the code
david=# select now();
              now              
-------------------------------
 2013-04-12 15:47:13.244721+08
(1 row)

david=#
Copy the code

2.1 Two years later

Copy the code
david=# select now() + interval '2 years';
           ?column?            
-------------------------------
 2015-04-12 15:49:03.168851+08
(1 row)

david=# select now() + interval '2 year'; 
           ?column?            
-------------------------------
 2015-04-12 15:49:12.378727+08
(1 row)

david=# select now() + interval '2 y';   
           ?column?           
------------------------------
 2015-04-12 15:49:25.46986+08
(1 row)

david=# select now() + interval '2 Y';
           ?column?            
-------------------------------
 2015-04-12 15:49:28.410853+08
(1 row)

david=# select now() + interval '2Y'; 
           ?column?            
-------------------------------
 2015-04-12 15:49:31.122831+08
(1 row)

david=# 
Copy the code

2.2 month later

Copy the code
david=# select now() + interval '1 month';  
           ?column?           
------------------------------
 2013-05-12 15:51:22.24373+08
(1 row)

david=# select now() + interval 'one month';
ERROR:  invalid input syntax for type interval: "one month"
LINE 1: select now() + interval 'one month';
                                ^
david=# 
Copy the code

2.3 three weeks ago

Copy the code
david=# select now() - interval '3 week';
           ?column?            
-------------------------------
 2013-03-22 16:00:04.203735+08
(1 row)

david=# 
Copy the code

2.4 After ten minutes

Copy the code
david=# select now() + '10 min';                 
           ?column?            
-------------------------------
 2013-04-12 16:12:47.445744+08
(1 row)

david=# 
Copy the code

Description:

interval can not write, its value can be:

Abbreviation Meaning
AND Years
M Months (in the date part)
W Weeks
D Days
H Hours
M Minutes (in the time part)
S Seconds

 

 

 



 

 

 

 

Calculating the difference between two time 2.5

使用 age(timestamp, timestamp)

Copy the code
david=# select age(now(), timestamp '1989-02-05');
                  age                   
----------------------------------------
 24 years 2 mons 7 days 17:05:49.119848
(1 row)

david=# 
Copy the code
Copy the code
david=# select age(timestamp '2007-09-15');       
          age           
------------------------
 5 years 6 mons 27 days
(1 row)

david=#
Copy the code

Third, the time taken field

In the development process, often to take the date of the year, month, day, hour equivalent, PostgreSQL provides a very handy function EXTRACT.

EXTRACT(field FROM source)

Field indicates the time taken by the object, source representing the date taken source, type timestamp, time, or interval.

3.1 Take Year

Copy the code
david=# select extract(year from now());
 date_part 
-----------
      2013
(1 row)

david=# 
Copy the code

3.2 Take month

Copy the code
david=# select extract(month from now());    
 date_part 
-----------
         4
(1 row)

david=# 
Copy the code
Copy the code
david=# select extract(day from timestamp '2013-04-13');
 date_part 
-----------
        13
(1 row)

david=# 
Copy the code
Copy the code
david=# SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');
 date_part 
-----------
        40
(1 row)

david=# 
Copy the code

3.3 looks at the first few days of the year today

Copy the code
david=# select extract(doy from now());
 date_part 
-----------
       102
(1 row)

david=# 
Copy the code

3.4 The number of seconds to see now from the 1970-01-01 00:00:00 UTC

Copy the code
david=# select extract(epoch from now());
    date_part     
------------------
 1365755907.94474
(1 row)

david=# 
Copy the code

3.5 epoch value is converted back to a time stamp

Copy the code
david=# SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1369755555 * INTERVAL '1 second'; 
        ?column?        
------------------------
 2013-05-28 23:39:15+08
(1 row)

david=# 
Copy the code

PG above is the basic time / date functions used, development can meet the general operation and maintenance applications.

 

Detailed usage, please refer to:

PostgreSQL official description: http://www.postgresql.org/docs/9.2/static/functions-datetime.html

PostgreSQL common time functions use are summarized as follows:

First, access to the system function of time

Get the current 1.1 full time

select now();

Copy the code
david=# select now();
              now              
-------------------------------
 2013-04-12 15:39:40.399711+08
(1 row)

david=# 
Copy the code

current_timestamp 同 now() 函数等效。

Copy the code
david=# select current_timestamp;
              now              
-------------------------------
 2013-04-12 15:40:22.398709+08
(1 row)

david=# 
Copy the code

1.2 获取当前日期

select current_date;

Copy the code
david=# select current_date;
    date    
------------
 2013-04-12
(1 row)

david=# 
Copy the code

1.3 获取当前时间

select current_time;

Copy the code
david=# select current_time;
       timetz       
--------------------
 15:43:31.101726+08
(1 row)

david=#
Copy the code

二、时间的计算

Copy the code
david=# select now();
              now              
-------------------------------
 2013-04-12 15:47:13.244721+08
(1 row)

david=#
Copy the code

2.1 两年后

Copy the code
david=# select now() + interval '2 years';
           ?column?            
-------------------------------
 2015-04-12 15:49:03.168851+08
(1 row)

david=# select now() + interval '2 year'; 
           ?column?            
-------------------------------
 2015-04-12 15:49:12.378727+08
(1 row)

david=# select now() + interval '2 y';   
           ?column?           
------------------------------
 2015-04-12 15:49:25.46986+08
(1 row)

david=# select now() + interval '2 Y';
           ?column?            
-------------------------------
 2015-04-12 15:49:28.410853+08
(1 row)

david=# select now() + interval '2Y'; 
           ?column?            
-------------------------------
 2015-04-12 15:49:31.122831+08
(1 row)

david=# 
Copy the code

2.2 一个月后

Copy the code
david=# select now() + interval '1 month';  
           ?column?           
------------------------------
 2013-05-12 15:51:22.24373+08
(1 row)

david=# select now() + interval 'one month';
ERROR:  invalid input syntax for type interval: "one month"
LINE 1: select now() + interval 'one month';
                                ^
david=# 
Copy the code

2.3 三周前

Copy the code
david=# select now() - interval '3 week';
           ?column?            
-------------------------------
 2013-03-22 16:00:04.203735+08
(1 row)

david=# 
Copy the code

2.4 十分钟后

Copy the code
david=# select now() + '10 min';                 
           ?column?            
-------------------------------
 2013-04-12 16:12:47.445744+08
(1 row)

david=# 
Copy the code

说明:

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

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

 

 

 



 

 

 

 

2.5 计算两个时间差

使用 age(timestamp, timestamp)

Copy the code
david=# select age(now(), timestamp '1989-02-05');
                  age                   
----------------------------------------
 24 years 2 mons 7 days 17:05:49.119848
(1 row)

david=# 
Copy the code
Copy the code
david=# select age(timestamp '2007-09-15');       
          age           
------------------------
 5 years 6 mons 27 days
(1 row)

david=#
Copy the code

三、时间字段的截取

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

EXTRACT(field FROM source)

field 表示取的时间对象,source 表示取的日期来源,类型为 timestamp、time 或 interval。

3.1 取年份

Copy the code
david=# select extract(year from now());
 date_part 
-----------
      2013
(1 row)

david=# 
Copy the code

3.2 取月份

Copy the code
david=# select extract(month from now());    
 date_part 
-----------
         4
(1 row)

david=# 
Copy the code
Copy the code
david=# select extract(day from timestamp '2013-04-13');
 date_part 
-----------
        13
(1 row)

david=# 
Copy the code
Copy the code
david=# SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');
 date_part 
-----------
        40
(1 row)

david=# 
Copy the code

3.3 查看今天是一年中的第几天

Copy the code
david=# select extract(doy from now());
 date_part 
-----------
       102
(1 row)

david=# 
Copy the code

3.4 查看现在距1970-01-01 00:00:00 UTC 的秒数

Copy the code
david=# select extract(epoch from now());
    date_part     
------------------
 1365755907.94474
(1 row)

david=# 
Copy the code

3.5 epoch value is converted back to a time stamp

Copy the code
david=# SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1369755555 * INTERVAL '1 second'; 
        ?column?        
------------------------
 2013-05-28 23:39:15+08
(1 row)

david=# 
Copy the code

PG above is the basic time / date functions used, development can meet the general operation and maintenance applications.

 

Detailed usage, please refer to:

PostgreSQL official description: http://www.postgresql.org/docs/9.2/static/functions-datetime.html

Guess you like

Origin www.cnblogs.com/jinanxiaolaohu/p/12059414.html