postgresql——日期时间函数
日期和时间函数: 日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用date类型的参数外,也可以使用datetime或者timestamp类型,但会忽略这些值的时间部分。相同的以time类型值为参数的函数,可以接受timestamp类型的参数,但会忽略日期部分。 1、获取当前日期的函数和获取当前时间的函数:current_date和current_time current_date函数:的作用是将当前日期按照“YYYY-MM-DD”格式的值返回,具体格式根据函数用在字符串或是数字语境中而定的。 current_time函数:的作用是将当前时间以“HH:MM:SS”的格式返回,具体格式根据函数用在字符串或是数字语境中而定的。 例子: testdb=# select current_date; date ------------ 2018-06-24 (1 row) testdb=# select current_time; timetz -------------------- 02:15:58.108822-04 (1 row) 2、获取当前日期和时间的函数:current_timestamp、localtimestamp、和now()三个函数的作用相同,均是返回当前日期和时间值,格式为:“YYYY-MM-DD HH:MM:SS”或YYYYMMDDHHMMSS,具体格式根据函数是否在字符串或数字语境中而定。 例子: 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、获取日期指定值的函数:extract(type from date) extract(type from date)函数从日期中提取一部分,而不是执行日期运算。 例子:使用extract函数从日期中提取日份,如: testdb=# select extract(day from timestamp '2018-08-15 12:10:10'); date_part ----------- 15 (1 row) 例子:使用extract函数从日期中提取月份,如: testdb=# select extract(month from timestamp '2018-08-15 12:10:10'); date_part ----------- 8 (1 row) 例子:使用extract函数从日期中提取年份,如: testdb=# select extract(year from timestamp '2018-08-15 12:10:10'); date_part ----------- 2018 (1 row) 例子:使用extract函数查询指定日期是一年中的第几天,如: testdb=# select extract(doy from timestamp '2018-08-15 12:10:10'); date_part ----------- 227 (1 row) 例子:使用extract函数查询指定日期是一周中的星期几,如: testdb=# select extract(dow from timestamp '2018-08-15 12:10:10'); date_part ----------- 3 (1 row) 例子:使用extract函数查询指定日期是该年的第几季度,如: testdb=# select extract(quarter from timestamp '2018-08-15 12:10:10'); date_part ----------- 3 (1 row) 4、日期和时间的运算操作: 日期和时间可以有:加、减、乘、除的运算操作。 例子:指定日期加运算:+10日后的日期 testdb=# select date '2018-08-15' + integer '10'; ?column? ------------ 2018-08-25 (1 row) 例子:指定日期加上间隔小时,+3小时 testdb=# select date '2018-08-15' + interval '3 hour'; ?column? --------------------- 2018-08-15 03:00:00 (1 row) 例子:指定日期加上指定时间后的结果,如: testdb=# select date '2018-08-15' + time '06:00'; ?column? --------------------- 2018-08-15 06:00:00 (1 row) 例子:指定日期和时间加上间隔时间后的结果: testdb=# select timestamp '2018-08-15 02:00:00' + interval '10 hours'; ?column? --------------------- 2018-08-15 12:00:00 (1 row) 例子:指定日期之间的间隔天数,如: testdb=# select date '2018-08-15' - date '2018-07-10'; ?column? ---------- 36 (1 row) 例子:指定日期减去间隔天数后的结果,如: testdb=# select date '2018-08-15' - integer '10'; ?column? ------------ 2018-08-05 (1 row) 例子:计算整数与天数相乘的结果,如: testdb=# select 15 * interval '2 day'; ?column? ---------- 30 days (1 row) 例子:计算整数与秒数相乘的结果,如: testdb=# select 50 * interval '2 second'; ?column? ---------- 00:01:40 (1 row) 例子:计算小时数与整数相乘的结果,如: testdb=# select interval '1 hour' / integer '2'; ?column? ---------- 00:30:00 (1 row) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |