postgreSQL操作手册
2016-06-30 17:20
387 查看
时间/日期函数和操作符:
1. 下面是PostgreSQL中支持的时间/日期操作符的列表:
2.日期/时间函数:
3.EXTRACT,date_part函数支持的field:
4.当前日期/时间:
我们可以使用下面的函数获取当前的日期和/或时间∶
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_TIME (precision)
CURRENT_TIMESTAMP (precision)
LOCALTIME
LOCALTIMESTAMP
LOCALTIME (precision)
LOCALTIMESTAMP (precision)
附上例子:
----mysql查询数据库离最近一天的最近一天的数据
SELECT * FROM tb_data_news WHERE DATE(release_date)= DATE_SUB(DATE((
SELECT MAX(t.release_date) FROM tb_data_news t)),INTERVAL 6 DAY);
---- pg 查询数据库离最近一天的最近一天的数据
SELECT * FROM tb_data_news WHERE date(release_date)= date((SELECT MAX(t.release_date) FROM tb_data_news t))- integer '13'
1. 下面是PostgreSQL中支持的时间/日期操作符的列表:
操作符 | 例子 | 结果 |
+ | date'2001-09-28' + integer '7' | date'2001-10-05' |
+ | date'2001-09-28' + interval '1 hour' | timestamp'2001-09-28 01:00' |
+ | date'2001-09-28' + time '03:00' | timestamp'2001-09-28 03:00' |
+ | interval '1day' + interval '1 hour' | interval '1day 01:00' |
+ | timestamp'2001-09-28 01:00' + interval '23 hours' | timestamp'2001-09-29 00:00' |
+ | time '01:00'+ interval '3 hours' | time'04:00' |
- | - interval'23 hours' | interval'-23:00' |
- | date'2001-10-01' - date '2001-09-28' | integer'3' |
- | date'2001-10-01' - integer '7' | date'2001-09-24' |
- | date'2001-09-28' - interval '1 hour' | timestamp'2001-09-27 23:00' |
- | time '05:00'- time '03:00' | interval'02:00' |
- | time '05:00'- interval '2 hours' | time'03:00' |
- | timestamp'2001-09-28 23:00' - interval '23 hours' | timestamp'2001-09-28 00:00' |
- | interval '1day' - interval '1 hour' | interval'23:00' |
- | timestamp'2001-09-29 03:00' - timestamp '2001-09-27 12:00' | interval '1day 15:00' |
* | interval '1hour' * double precision '3.5' | interval'03:30' |
/ | interval '1hour' / double precision '1.5' | interval'00:40' |
函数 | 返回类型 | 描述 | 例子 | 结果 |
age(timestamp,timestamp) | interval | 减去参数,生成一个使用年、月的"符号化"的结果 | age('2001-04-10',timestamp '1957-06-13') | 43 years 9mons 27 days |
age(timestamp) | interval | 从current_date减去得到的数值 | age(timestamp'1957-06-13') | 43 years 8mons 3 days |
current_date | date | 今天的日期 | ||
current_time | time | 现在的时间 | ||
current_timestamp | timestamp | 日期和时间 | ||
date_part(text,timestamp) | double | 获取子域(等效于extract) | date_part('hour',timestamp '2001-02-16 20:38:40') | 20 |
date_part(text,interval) | double | 获取子域(等效于extract) | date_part('month',interval '2 years 3 months') | 3 |
date_trunc(text,timestamp) | timestamp | 截断成指定的精度 | date_trunc('hour',timestamp '2001-02-16 20:38:40') | 2001-02-1620:00:00+00 |
extract(fieldfrom timestamp) | double | 获取子域 | extract(hourfrom timestamp '2001-02-16 20:38:40') | 20 |
extract(fieldfrom interval) | double | 获取子域 | extract(monthfrom interval '2 years 3 months') | 3 |
localtime | time | 今日的时间 | ||
localtimestamp | timestamp | 日期和时间 | ||
now() | timestamp | 当前的日期和时间(等效于current_timestamp) | ||
timeofday() | text | 当前日期和时间 |
域 | 描述 | 例子 | 结果 |
CENTURY | 世纪 | EXTRACT(CENTURY FROMTIMESTAMP '2000-12-16 12:21:13'); | 20 |
DAY | (月分)里的日期域(1-31) | EXTRACT(DAYfrom TIMESTAMP '2001-02-16 20:38:40'); | 16 |
DECADE | 年份域除以10 | EXTRACT(DECADE fromTIMESTAMP '2001-02-16 20:38:40'); | 200 |
DOW | 每周的星期号(0-6;星期天是0)(仅用于timestamp) | EXTRACT(DOWFROM TIMESTAMP '2001-02-16 20:38:40'); | 5 |
DOY | 一年的第几天(1-365/366) (仅用于 timestamp) | EXTRACT(DOYfrom TIMESTAMP '2001-02-16 20:38:40'); | 47 |
HOUR | 小时域(0-23) | EXTRACT(HOURfrom TIMESTAMP '2001-02-16 20:38:40'); | 20 |
MICROSECONDS | 秒域,包括小数部分,乘以1,000,000。 | EXTRACT(MICROSECONDS fromTIME '17:12:28.5'); | 28500000 |
MILLENNIUM | 千年 | EXTRACT(MILLENNIUM fromTIMESTAMP '2001-02-16 20:38:40'); | 3 |
MILLISECONDS | 秒域,包括小数部分,乘以1000。 | EXTRACT(MILLISECONDS fromTIME '17:12:28.5'); | 28500 |
MINUTE | 分钟域(0-59) | EXTRACT(MINUTE fromTIMESTAMP '2001-02-16 20:38:40'); | 38 |
MONTH | 对于timestamp数值,它是一年里的月份数(1-12);对于interval数值,它是月的数目,然后对12取模(0-11) | EXTRACT(MONTHfrom TIMESTAMP '2001-02-16 20:38:40'); | 2 |
QUARTER | 该天所在的该年的季度(1-4)(仅用于timestamp) | EXTRACT(QUARTER fromTIMESTAMP '2001-02-16 20:38:40'); | 1 |
SECOND | 秒域,包括小数部分(0-59[1]) | EXTRACT(SECOND fromTIMESTAMP '2001-02-16 20:38:40'); | 40 |
WEEK | 该天在所在的年份里是第几周。 | EXTRACT(WEEKfrom TIMESTAMP '2001-02-16 20:38:40'); | 7 |
YEAR | 年份域 | EXTRACT(YEARfrom TIMESTAMP '2001-02-16 20:38:40'); | 2001 |
我们可以使用下面的函数获取当前的日期和/或时间∶
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_TIME (precision)
CURRENT_TIMESTAMP (precision)
LOCALTIME
LOCALTIMESTAMP
LOCALTIME (precision)
LOCALTIMESTAMP (precision)
附上例子:
----mysql查询数据库离最近一天的最近一天的数据
SELECT * FROM tb_data_news WHERE DATE(release_date)= DATE_SUB(DATE((
SELECT MAX(t.release_date) FROM tb_data_news t)),INTERVAL 6 DAY);
---- pg 查询数据库离最近一天的最近一天的数据
SELECT * FROM tb_data_news WHERE date(release_date)= date((SELECT MAX(t.release_date) FROM tb_data_news t))- integer '13'
相关文章推荐
- oracle sql日期比较
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- DB2 日期和时间的函数应用说明
- 关于C#中排序函数的总结
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- Delphi实现读取系统时间与日期完整实例
- ASP下经常用的字符串等函数参考资料
- Country使 MS-DOS 子系统能使用国际时间、日期、货币、大小写转换和小数分隔符
- vbs下通过日期查找文件夹的代码
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- 用批处理实现的创建带日期的文件夹的代码
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例