日期和時(shí)間函數(shù):
創(chuàng)新互聯(lián)是一家專業(yè)提供天祝藏族自治企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站設(shè)計(jì)、html5、小程序制作等業(yè)務(wù)。10年已為天祝藏族自治眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
日期和時(shí)間函數(shù)主要用來處理日期和時(shí)間值,一般的日期函數(shù)除了使用date類型的參數(shù)外,也可以使用datetime或者timestamp類型,但會(huì)忽略這些值的時(shí)間部分。相同的以time類型值為參數(shù)的函數(shù),可以接受timestamp類型的參數(shù),但會(huì)忽略日期部分。
1、獲取當(dāng)前日期的函數(shù)和獲取當(dāng)前時(shí)間的函數(shù):current_date和current_time
current_date函數(shù):的作用是將當(dāng)前日期按照“YYYY-MM-DD”格式的值返回,具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語境中而定的。
current_time函數(shù):的作用是將當(dāng)前時(shí)間以“HH:MM:SS”的格式返回,具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語境中而定的。
例子:
testdb=# select current_date;
date
------------
2018-06-24
(1 row)
testdb=# select current_time;
timetz
--------------------
02:15:58.108822-04
(1 row)
2、獲取當(dāng)前日期和時(shí)間的函數(shù):current_timestamp、localtimestamp、和now()三個(gè)函數(shù)的作用相同,均是返回當(dāng)前日期和時(shí)間值,格式為:“YYYY-MM-DD HH:MM:SS”或YYYYMMDDHHMMSS,具體格式根據(jù)函數(shù)是否在字符串或數(shù)字語境中而定。
例子:
testdb=# select current_timestamp,localtimestamp,now();
now | timestamp | now
-------------------------------+----------------------------+-------------------------------
2018-06-24 02:18:46.701219-04 | 2018-06-24 02:18:46.701219 | 2018-06-24 02:18:46.701219-04
(1 row)
3、獲取日期指定值的函數(shù):extract(type from date)
extract(type from date)函數(shù)從日期中提取一部分,而不是執(zhí)行日期運(yùn)算。
例子:使用extract函數(shù)從日期中提取日份,如:
testdb=# select extract(day from timestamp '2018-08-15 12:10:10');
date_part
-----------
15
(1 row)
例子:使用extract函數(shù)從日期中提取月份,如:
testdb=# select extract(month from timestamp '2018-08-15 12:10:10');
date_part
-----------
8
(1 row)
例子:使用extract函數(shù)從日期中提取年份,如:
testdb=# select extract(year from timestamp '2018-08-15 12:10:10');
date_part
-----------
2018
(1 row)
例子:使用extract函數(shù)查詢指定日期是一年中的第幾天,如:
testdb=# select extract(doy from timestamp '2018-08-15 12:10:10');
date_part
-----------
227
(1 row)
例子:使用extract函數(shù)查詢指定日期是一周中的星期幾,如:
testdb=# select extract(dow from timestamp '2018-08-15 12:10:10');
date_part
-----------
3
(1 row)
例子:使用extract函數(shù)查詢指定日期是該年的第幾季度,如:
testdb=# select extract(quarter from timestamp '2018-08-15 12:10:10');
date_part
-----------
3
(1 row)
4、日期和時(shí)間的運(yùn)算操作:
日期和時(shí)間可以有:加、減、乘、除的運(yùn)算操作。
例子:指定日期加運(yùn)算:+10日后的日期
testdb=# select date '2018-08-15' + integer '10';
?column?
------------
2018-08-25
(1 row)
例子:指定日期加上間隔小時(shí),+3小時(shí)
testdb=# select date '2018-08-15' + interval '3 hour';
?column?
---------------------
2018-08-15 03:00:00
(1 row)
例子:指定日期加上指定時(shí)間后的結(jié)果,如:
testdb=# select date '2018-08-15' + time '06:00';
?column?
---------------------
2018-08-15 06:00:00
(1 row)
例子:指定日期和時(shí)間加上間隔時(shí)間后的結(jié)果:
testdb=# select timestamp '2018-08-15 02:00:00' + interval '10 hours';
?column?
---------------------
2018-08-15 12:00:00
(1 row)
例子:指定日期之間的間隔天數(shù),如:
testdb=# select date '2018-08-15' - date '2018-07-10';
?column?
----------
36
(1 row)
例子:指定日期減去間隔天數(shù)后的結(jié)果,如:
testdb=# select date '2018-08-15' - integer '10';
?column?
------------
2018-08-05
(1 row)
例子:計(jì)算整數(shù)與天數(shù)相乘的結(jié)果,如:
testdb=# select 15 * interval '2 day';
?column?
----------
30 days
(1 row)
例子:計(jì)算整數(shù)與秒數(shù)相乘的結(jié)果,如:
testdb=# select 50 * interval '2 second';
?column?
----------
00:01:40
(1 row)
例子:計(jì)算小時(shí)數(shù)與整數(shù)相乘的結(jié)果,如:
testdb=# select interval '1 hour' / integer '2';
?column?
----------
00:30:00
(1 row)