• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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

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

    您可能感兴趣的文章:
    • postgreSQL 非count方法算记录数操作
    • 详解PostgreSql数据库对象信息及应用
    • postgresql的now()与Oracle的sysdate区别说明
    • Postgresql 通过出生日期获取年龄的操作
    • postgresql 获取两个时间类型小时差值案例
    • postgresql通过索引优化查询速度操作
    上一篇:postgresql重置序列起始值的操作
    下一篇:postgresql 获取两个时间类型小时差值案例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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