PostgreSQL中的时间操作总结

取当前日期的函数:

(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 类型:

PostgreSQL中的时间操作总结

Time , interval, timestamp 可以指定精度,精度范围0-6,定义格式参手册。

对于带时区timestamp 类型,select now() at  time zone ‘时区’,可去当地时间:

select now() at time zone 'GFT';--取法国时间

PostgreSQL中的时间操作总结

PS:关于带时区与不带时区的区别,可参考http://francs3.blog.163.com/blog/static/40576727201153014258289/

(1)     查询 current_timestamp : select current_timestamp

PostgreSQL中的时间操作总结

可以看到current_timestamp 返回的是带时区(+08)时间类型,精度为643549。

(2)     去掉精度

PostgreSQL中的时间操作总结

(3)     去掉时区

PostgreSQL中的时间操作总结

另一种写法:

PostgreSQL中的时间操作总结

(4)     用case()函数进行类型转换。

Select cast(current_timestamp(0) as timestamp without time zone)

PostgreSQL中的时间操作总结

PostgreSQL中的时间操作总结

(5)     对精度进行对比可以看到(p)是精度

Select current_timestamp(2)::timestamp without time zone

Select current_timestamp(6)::timestamp without time zone

PostgreSQL中的时间操作总结

PostgreSQL中的时间操作总结

上一篇:python(1):数据类型/string/list/dict/set等


下一篇:C#Enum用Tuple保存值绑定到前端的CheckBox