Postgresql时间处理_postgresql 获取某天的23:59:59-程序员宅基地

技术标签: postgresql  

目录

时间/日期操作符

日期/时间函数

EXTRACT函数

综合示例


时间/日期操作符

 

操作符 例子 结果
+ date '2011-09-28' + integer '7' date '2011-10-05'
+ date '2011-09-18' + interval '1 hour' timestamp '2011-09-18 01:00'
+ date '2011-09-18' + time '02:00' timestamp '2011-09-18 02:00'
+ interval '1 day' + interval '1 hour' interval '1 day 01:00'
+ timestamp '2011-09-28 01:00' + interval '23 hours' timestamp '2011-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 '2011-10-01' - integer '7' date '2011-09-24'
- date '2011-09-28' - interval '1 hour' timestamp '2011-09-27 23:00'
- time '05:00' - time '03:00' interval '02:00'
- time '05:00' - interval '2 hours' time '03:00'
- timestamp '2011-09-28 23:00' - interval '23 hours' timestamp '2011-09-28 00:00'
- interval '1 day' - interval '1 hour' interval '23:00'
- timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00' interval '1 day 15:00'
* interval '1 hour' * double precision '3.5' interval '03:30'
/ interval '1 hour' / double precision '1.5' interval '00:40'

 

日期/时间函数

函数 返回类型 描述 例子 结果
age(timestamp, timestamp) interval 减去参数,生成一个使用年、月的"符号化"的结果 age('2001-04-10', timestamp '1957-06-13') 43 years 9 mons 27 days
age(timestamp) interval 从current_date减去得到的数值 age(timestamp '1957-06-13') 43 years 8 mons 3 days
current_date date 今天的日期    
current_time time 现在的时间    
current_timestamp timestamp 日期和时间    
date_part(text, timestamp) double 获取子域(等效于extract) date_part('hour', timestamp '2012-05-06 10:20:30') 10
date_part(text, interval) double 获取子域(等效于extract) date_part('month', interval '2 years 3 months') 3
date_trunc(text, timestamp) timestamp 截断成指定的精度 date_trunc('hour', timestamp '2012-05-06 10:20:30') 2012-05-06 10:00:00+00
extract(field from timestamp) double 获取子域 extract(hour from timestamp '2012-05-06 10:20:30') 10
extract(field from interval) double 获取子域 extract(month from interval '2 years 3 months') 3
localtime time 今日的时间    
localtimestamp timestamp 日期和时间    
now() timestamp 当前的日期和时间(等效于 current_timestamp)    
timeofday() text 当前日期和时间    

 

EXTRACT函数

用于取出时间中的一部分,比如取出小时部分,参数示例如下:

描述 例子 结果
CENTURY 世纪 EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13'); 20
DAY (月分)里的日期域(1-31) EXTRACT(DAY from TIMESTAMP '2001-02-16 20:38:40'); 16
DECADE 年份域除以10 EXTRACT(DECADE from TIMESTAMP '2001-02-16 20:38:40'); 200
DOW 每周的星期号(0-6;星期天是0) (仅用于timestamp) EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40'); 5
DOY 一年的第几天(1 -365/366) (仅用于 timestamp) EXTRACT(DOY from TIMESTAMP '2001-02-16 20:38:40'); 47
HOUR 小时域(0-23) EXTRACT(HOUR from TIMESTAMP '2001-02-16 20:38:40'); 20
MICROSECONDS 秒域,包括小数部分,乘以 1,000,000。 EXTRACT(MICROSECONDS from TIME '17:12:28.5'); 28500000
MILLENNIUM 千年 EXTRACT(MILLENNIUM from TIMESTAMP '2001-02-16 20:38:40'); 3
MILLISECONDS 秒域,包括小数部分,乘以 1000。 EXTRACT(MILLISECONDS from TIME '17:12:28.5'); 28500
MINUTE 分钟域(0-59) EXTRACT(MINUTE from TIMESTAMP '2001-02-16 20:38:40'); 38
MONTH 对于timestamp数值,它是一年里的月份数(1-12);对于interval数值,它是月的数目,然后对12取模(0-11) EXTRACT(MONTH from TIMESTAMP '2001-02-16 20:38:40'); 2
QUARTER 该天所在的该年的季度(1-4)(仅用于 timestamp) EXTRACT(QUARTER from TIMESTAMP '2001-02-16 20:38:40'); 1
SECOND 秒域,包括小数部分(0-59[1]) EXTRACT(SECOND from TIMESTAMP '2001-02-16 20:38:40'); 40
WEEK 该天在所在的年份里是第几周。 EXTRACT(WEEK from TIMESTAMP '2001-02-16 20:38:40'); 7
YEAR 年份域 EXTRACT(YEAR from TIMESTAMP '2001-02-16 20:38:40'); 2001

 

综合示例

获取当前据本周五23:59还有多少小时多少分钟

select EXTRACT(HOUR FROM(CURRENT_DATE + time '23:59') - CURRENT_TIMESTAMP) + (6 - extract(dow from current_date) )*24 "hour",

EXTRACT(MINUTE FROM(CURRENT_DATE + time '23:59') - CURRENT_TIMESTAMP) "minute";

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/whq12789/article/details/98860327

智能推荐

安卓MediaPlayer切换DataSource_android mediadatasource-程序员宅基地

文章浏览阅读1.6k次。最近在重新学习MediaPlayer的使用,首先扫描出sd卡的所有MP3文件,然后点击item可以切换播放,调用 setDataSource切换数据源,刚开始的切换流程是mMediaPlayer.stop()mMediaPlayer.setDataSource(filePath)mMediaPlayer.prepareAsync()结果闪退,报IllegalStateExcepti..._android mediadatasource

mybatis 进行批量更新操作_mybatis 万能批量更新-程序员宅基地

文章浏览阅读1.7k次。 UPDATE gt_agent_day_corr_optstatus

【C++】习题函数部分-程序员宅基地

文章浏览阅读1k次。1.编写函数正整数的每个位上的数字逆序输出#include <iostream>using namespace std;void reverseDigit(int num){ int n=num,i=0; //判断num是几位数 while(n>0) { n=n/10; i++; } int a[100]; for(int j=0;j<i...

java 线程死锁例子_java多线程死锁简单实例-程序员宅基地

文章浏览阅读75次。TestDeadLock.java:package com.ctgu.testDeadLock;public class TestDeadLock {public static void main(String[] args) {User user = new User("大毛", "123", 22);User user2 = new User("二毛", "456", 44);new Thre..._java多线程死锁的例子

Lingo (Spring Remoting) : Passing client credentials to the server-程序员宅基地

文章浏览阅读103次。http://www.jroller.com/sjivan/entry/lingo_spring_remoting_passing_clientLingo (Spring Remoting) : Passing client credentials to the serverSpring Remoting allows you to export a service interface w..._clientcontextholder

Codova 创建项目,引用jar提示java.lang.VerifyError_codova aar-程序员宅基地

文章浏览阅读307次。背景说明:Android原生的开发包是直接通过gradle加载aar使用,由于客户需要模块的cordova插件,于是只能引用aar解压出来的jar包,通过cordova创建项目,指定Android平台,引入插件,然后编译安装(此时创建的项目可以通过AndroidStudio打开)Cordova创建的项目 在Android6.0上跑报如下错误,字面上看java编译器拒绝编译这个类Re..._codova aar

随便推点

ros介绍-程序员宅基地

文章浏览阅读1.5k次。ROS是什么?ROS 历史起源ROS 发展背景问题:机器人跨学科特点,系统庞大,工程应用涉及面广,硬件繁多,软件开发困难、低级重复基础:机器人研究相关领域发展迅速:计算机视觉,异构计算加速,室内移动机器人算法的成熟等等需求:机器人研究过程中需要统一开发/测试平台解决方法:机器人软件中间件ROS总体设计一个目标提高机器人开发中的代码复用率五个特点免费且开源BSD许..._ros

Faster R-CNN roi_pooling_layer 浅析_psroi_pooling_layer not implemented yet-程序员宅基地

文章浏览阅读3.3k次。阅读完 R-CNN一系列论文之后,开始看源代码。本文简要记录自己对roi_pooling_layer源码的理解。作者首先在caffe.proto中添加该层参数说明,主要是三个变量 optional ROIPoolingParameter roi_pooling_param = 43; message ROIPoolingParameter {// Pad, kernel size, and str_psroi_pooling_layer not implemented yet

刷题笔记7——输出斐波那契数列的第n项_输出斐波拉契数列第n项r语言-程序员宅基地

文章浏览阅读793次。题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n&lt;=391、递归class Solution {public: int Fibonacci(int n) { int num[39]; num[0] = 0; num[1] = 1; int cnt..._输出斐波拉契数列第n项r语言

查看docker容器的日志_docker logs查询倒数200行日志-程序员宅基地

文章浏览阅读1.1w次。命令行docker logs -f -t --since="2018-03-31" --tail=100 elastic_raman–since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。 -f : 表示查看实时日志 -t : 查看日志产生的日期 -tail=200 : 查看最后的200条日志。 sleepy_snyder 容器的名称,并不是镜像的名字注..._docker logs查询倒数200行日志

SpringBoot整合RabbitMQ 实现五种消息模型 详细教程_rabbspringbootitmq五种消息模型-程序员宅基地

文章浏览阅读8.1k次,点赞17次,收藏38次。今天说下了消息队列中间件,各种队列性能对比,RabbitMQ队列,交换机(Exchange)以及消息中间件的应用场景,然后带着大家一起实现RabbitMQ的五种消息模型。消息队列中间件消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和终一致性[架构] 使用较多的消息队列有 ActiveMQ,RabbitMQ,ZeroMQ,K..._rabbspringbootitmq五种消息模型

IDEA Intellij 安装CheckStyle,阿里技术专家深入讲解_checkstyle-idea 插件。 安装步骤-程序员宅基地

文章浏览阅读372次,点赞3次,收藏10次。光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性。_checkstyle-idea 插件。 安装步骤