取当前日期的函数:
(1) 取当前时间:select now()
(2) 取当前时间的日期: select current_date
(3) 取当前具体时间(不含日期) select current_time
时间的加减:
Select now()
(1) 取三天后的时间:select now() + interval ‘3 day’;
(2) 取三天前的时间:select now() - interval ‘3 day’
(3) 取1小时后(前)时间: select now() +(-) interval ‘ 1 hour’
(4) 取10分钟后(前)时间:select now() +(-) interval ‘ 10 minutes’
取时间字段的部分值:年份,月份,日… 函数:extract(field from source):field表示要取的时间对象,source表取得时间来源,其类型需为timestamp
(1) 取年份: select extract (year from now())
(2) 取月/day/hour/minute/… : select extract(month/day/hour/minute from now()); select extract(day from timestamp‘2015-11-20’)
(3) 取目前所在星期: select extract(week from now());
Timestamp 类型:
Time , interval, timestamp 可以指定精度,精度范围0-6,定义格式参手册。
对于带时区timestamp 类型,select now() at time zone ‘时区’,可去当地时间:
select now() at time zone 'GFT';--取法国时间
PS:关于带时区与不带时区的区别,可参考http://francs3.blog.163.com/blog/static/40576727201153014258289/
(1) 查询 current_timestamp : select current_timestamp
可以看到current_timestamp 返回的是带时区(+08)时间类型,精度为643549。
(2) 去掉精度
(3) 去掉时区
另一种写法:
(4) 用case()函数进行类型转换。
Select cast(current_timestamp(0) as timestamp without time zone)
(5) 对精度进行对比可以看到(p)是精度
Select current_timestamp(2)::timestamp without time zone
Select current_timestamp(6)::timestamp without time zone