postgresql中时间转换和加减操作

昨天遇到一个floor向下取整的问题,现在将它记录下来。

首先floor是需要一个int或者dp。那么我们日期加减转换,timestamp 转data,是需要先将其转成char,再由char转date,再相减,得出一个符合floor函数要求的值。

代码如下:

FLOOR((to_date(to_char(current_timestamp, 'yyyy-MM-dd hh:mi:ss'), 'yyyy-mm-dd')

- to_date(to_char(ca.birthday, 'yyyy-MM-dd hh:mi:ss'), 'yyyy-mm-dd')) / 365) as age

同样的,在java里面要想得到timestamp的当前时间,也是用util的date转string再转timestamp

补充:PostgreSQL的日期运算计算函数使用

一:各个数据中的连接符

SqlServer的连接符:+(加号)

Sqlite的连接符:.(点)

PostgreSQL的连接符:||(或)

二:

今天在PostgreSQL计算日期的时候,翻了一些资料,很少,就记录下来吧~!

其中使用到的函数及变量

to_char()、Date()、now()、current_date

计算两个日期的差

current_date为今天的日期,为:2015-06-03

Date('2015-06-05')-current_date=2
select to_char(current_date,'yyyy')||'-'||to_char(birthday,'mm-dd'),Date(to_char(current_date,'yyyy')||'-'||to_char(birthday,'mm-dd'))-current_date
from tablename where delflag=0 and status=0
and Date(to_char(current_date,'yyyy')||'-'||to_char(birthday,'mm-dd'))-current_date>=0
and Date(to_char(current_date,'yyyy')||'-'||to_char(birthday,'mm-dd'))-current_date<=7 order by birthday desc

三:

select now() + interval '1 days';
select now() + interval '1 month';
select now() + interval '1 years';

四:

SqlServer中进行日期计算时,用到函数

CONVERT(),DATEPART(),getDate()
select CONVERT(varchar(10),CONVERT(varchar(4),DATEPART(year,getDate()))+'-'+ CONVERT(varchar(2),DATEPART(month,birthday))+'-'+CONVERT(varchar(2),DATEPART(day,birthday)),120),datediff(day,CONVERT(varchar(10),getdate(),120),CONVERT(varchar(10),CONVERT(varchar(4),DATEPART(year,getDate()))+'-'+ CONVERT(varchar(2),DATEPART(month,birthday))+'-'+CONVERT(varchar(2),DATEPART(day,birthday)),120))
from tablename where delflag=0 and status=0
and datediff(day,CONVERT(varchar(10),getdate(),120),CONVERT(varchar(10),CONVERT(varchar(4),DATEPART(year,getDate()))+'-'+ CONVERT(varchar(2),DATEPART(month,birthday))+'-'+CONVERT(varchar(2),DATEPART(day,birthday)),120))<=7
and datediff(day,CONVERT(varchar(10),getdate(),120),CONVERT(varchar(10),CONVERT(varchar(4),DATEPART(year,getDate()))+'-'+ CONVERT(varchar(2),DATEPART(month,birthday))+'-'+CONVERT(varchar(2),DATEPART(day,birthday)),120))>=0 order by birthday desc

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • postgresql的now()与Oracle的sysdate区别说明

    postgresql的now()为当前事务开始时间, 而Oracle的sysdate是当前时间. 区别在于事务. postgresql中的now(): postgres=# begin ; BEGIN postgres=# select now(); now ------------------------------- 2017-03-31 14:28:32.403869+08 (1 row) postgres=# select now(); now ---------------------

  • Postgresql 通过出生日期获取年龄的操作

    三个基础的时间表示函数 CURRENT_DATE/CURRENT_TIME/NOW() SELECT CURRENT_DATE ; 返回当前日期以 年-月-日(yyyy-MM-dd)的形式: 2019-01-10 SELECT CURRENT_TIME; 返回当日时间以 时:分:秒+时区(HH:mm:ss )的形式: 17:49:11.585308+08 SELECT NOW(); 返回当前时间 以 年-月-日 时:分:秒(yyyy-MM-dd HH:mm:ss)的形式: 2019-01-10

  • postgresql 获取两个时间类型小时差值案例

    我就废话不多说了,看代码吧~ select extract(day from t) * 24 + extract(hour from t) from (select (timestamp '2013-12-14 12:00:00' - timestamp '2013-12-11 4:00:00') as t) as a; 例如a表中有start,end俩字段 select extract(day from (end-start)) * 24 + extract(hour from (end-st

  • postgreSQL 非count方法算记录数操作

    一般方法 select count(1) from table_name; 全量扫描一遍表,记录越多,查询速度越慢 新法 PostgreSQL 还真提供了一个这样的途径,那就是系统表 pg_class,这个系统表里头,存储着每个表的统计信息,其中 reltuples 就是对应的表的统计行,统计行的数据是pg有个独立进程,定期扫描不同的表,收集这些表的统计信息,保存在系统表里头. 方法如下: select reltuples::int as total from pg_class where re

  • 详解PostgreSql数据库对象信息及应用

    PostgreSql数据库对象主要有数据库.表.视图.索引.schema.函数.触发器等.PostgreSql提供了information_schema schema,其中包括返回数据库对象的视图.如用户有访问权限,可以也在pg_catalog schema中查询表.视图等对象. 1. 查询数据库对象 下面通过示例分别展示如何查询各种数据库对象. 1.1 表查询 PostgreSql 表信息可以从information_schema.tables 或 pg_catalog.pg_tables 视

  • postgresql通过索引优化查询速度操作

    当数据量比较大的时候,提升查询效率就是需要去考虑的事情了.一个百万级别的表格,如果不做任何优化的话,即使是最简单的查询语句执行起来也是慢的让人难以接受:当然"优化"本身是一个比较复杂的工程,从设计表.字段到查询语句的写法都有很多讲究,这里只考虑索引的方式,且是最普通的索引: 下面的操作中对应数据库表w008_execrise_info(8000数据量), w008_wf02_info(4000数据量) 1 任务表数据 SELECT w.* FROM w008_wf02_info w W

  • postgresql中时间转换和加减操作

    昨天遇到一个floor向下取整的问题,现在将它记录下来. 首先floor是需要一个int或者dp.那么我们日期加减转换,timestamp 转data,是需要先将其转成char,再由char转date,再相减,得出一个符合floor函数要求的值. 代码如下: FLOOR((to_date(to_char(current_timestamp, 'yyyy-MM-dd hh:mi:ss'), 'yyyy-mm-dd') - to_date(to_char(ca.birthday, 'yyyy-MM-

  • python3 中时间戳、时间、日期的转换和加减操作

    1.当前时间戳转换为指定格式的日期 # -*- coding: utf-8 -*- # @Time : 2019/5/31 10:56 # @Author : 甄超锋 # @Email : 4535@sohu.com # @File : test.py # @Software: PyCharm import datetime import time # 使用time timeStamp = time.time() # 1559286774.2953627 timeArray = time.loc

  • Python实现日期判断和加减操作详解

    python实现日期判断和加减操作 #==================================================== #时间相关 #==================================================== def if_workday(day_str, separator=""): """ if a day is workday :param day_str: string of a day :pa

  • ORACLE中的日期加减操作实例介绍

    无论是DATE还是timestamp都可以进行加减操作. 可以对当前日期加年.月.日.时.分.秒,操作不同的时间类型,有三种方法: 1 使用内置函数numtodsinterval增加小时,分钟和秒 2 加一个简单的数来增加天 3 使用内置函数add_months来增加年和月 例: 对当前日期增加一个小时: 复制代码 代码如下: SQL> select sysdate, sysdate+numtodsinterval(1,'hour') from dual ; SYSDATE           

  • python中时间转换datetime和pd.to_datetime详析

    前言 我们在python对数据进行操作时,经常会选取某一时间段的数据进行分析.这里为大家介绍两个我经常用到的用来选取某一时间段数据的函数:datetime( )和pd.to_datetime( ). (一)datetime( ) (1)获取指定的时间和日期.datetime(%Y,%m,%d,%H,%M,%S) datetime共有6个参数,分别代表的是年月日时分秒.其中年月日是必须要传入的参数,时分秒可以不传入,默认全为零. eg: (2)将Str和Unicode转化为datetimedate

  • ios开发中时间转换的方法集锦

    在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如: //实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设定时间格式,这里可以设置成自己需要的格式 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //用[NSDate d

  • PHP中时间加减函数strtotime用法分析

    本文实例讲述了PHP中时间加减函数strtotime用法.分享给大家供大家参考,具体如下: 时间加减 <?php //获取本地 提取年份+1 $date=date("Y-m-d",mktime(0,0,0,date("m") ,date("d"),date("Y")+1)); ?> 如果要获取数据库中的时间应该如何处理呢?在PHP文档中找到了一个很好的函数strtotime,可以对时间进行加减: int strto

  • PostgreSQL中的日期/时间函数详解

    目录 零.前言 一.获取当前时间 二.时间的加减 三.格式化函数 3.1时间转字符串 3.2字符串转日期 3.3字符串转时间 3.4Unix时间戳转时间 四.一些重要函数 4.1时间间隔 4.2时间截取 五.时间的转换 六.收! 零.前言 公司里有一台阿里云RDS数据库用了PPAS(Postgres PlusTM Advanced Server),在处理日期/时间时遇到一些问题,花了点时间整理如下. 一.获取当前时间 select now() select current_timestamp s

  • Jmeter中的timeshift()函数获取当前时间进行加减

    __TimeShift(格式,日期,移位,语言环境,变量): 可对日期进行移位加减操作 格式 - 将显示创建日期的格式. 如果该值未被传递,则以毫秒为单位创建日期. 日期 - 这是日期值.用于如果要通过添加或减去特定天数,小时或分钟来创建特定日期的情况.如果参数值未通过,则使用当前日期. 移位 -表示要从日期参数的值中添加或减去多少天,几小时或几分钟.如果该值未被传递,则不会将任何值减去或添加到日期参数的值中.如下所述: “PT20.345S”解析为“20.345秒” “PT15M”解析为“15

  • PostgreSQL中常用的时间日期脚本使用教程

    获取系统时间函数 select now(); --2013-11-28 16:20:25.259715+08 select current_timestamp; --2013-11-28 16:20:38.815466+08 select current_date; --2013-11-28 select current_time; --16:21:08.981171+08 时间的计算 --使用interval select now()+interval '2 day'; --2013-11-3

随机推荐