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 17:50:45.354983+0
然后几个计算公式
第一种是直接对日期进行操作,
SELECT (CURRENT_DATE - '1993-01-01')/365 age; SELECT (CURRENT_DATE - '1993-01-01 16:00:00')/365 age;
输出 26 26 两种时间格式结果一致
第二种方式
SELECT age(CURRENT_DATE, '1993-01-01') age; SELECT age(CURRENT_DATE, '1993-01-01 16:00:00') age;
输出
26 years 9 days
26 years 8 days 08:00:00
age()函数会输出精确的年龄字符串,根据传入的时间不同,输出的时间格式相对应
如果使用now()函数计算,需要注意age()函数能输出正确结果,直接计算单位为day
SELECT age(CURRENT_DATE, '1993-01-01') age; SELECT age(CURRENT_DATE, '1993-01-01 16:00:00') age; select (now() - '1993-01-01')/365 age; select (now() - '1993-01-01 16:00:00')/365 age
分别输出
26 years 9 days 19:20:46.395713
26 years 9 days 03:20:46.421816
26 days 01:02:21.497111
26 days 00:59:43.688958
补充:PostgreSQL获取当前时间的四种方式
PostgreSQL中有四种获取当前时间的方式。
1.now()
返回值:当前年月日、时分秒,且秒保留6位小数。
2.current_timestamp
返回值:当前年月日、时分秒,且秒保留6位小数。(同上)
申明:now和current_timestamp几乎没区别,返回值相同,建议用now。
3.current_time
返回值:时分秒,秒最高精确到6位
4.current_date
返回值:年月日
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
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-
-
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的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
-
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
本文实例讲述了JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>检验身份证格式并输出出生日期,年龄,性别,出生地</title> </head> <body> <script>
-
根据身份证号码计算出生日期、年龄、性别(18位) 根据入职时间计算工龄
适用于OA项目中这些对档案的管理 1.根据身份证号码计算出生日期.年龄.性别(18位) 复制代码 代码如下: //获取输入身份证号码 var UUserCard = $("#UUserCard").val(); //获取出生日期 //UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14); //获取性别 i
-
Python类的继承、多态及获取对象信息操作详解
本文实例讲述了Python类的继承.多态及获取对象信息操作.分享给大家供大家参考,具体如下: 继承 类的继承机制使得子类可以继承父类中定义的方法,拥有父类的财产,比如有一个Animal的类作为父类,它有一个eat方法: class Animal(object): def __init__(self): print("Animal 构造函数调用!") def eat(self): print("Animal is eatting!") 写两个子类,Cat和Dog类,继
-
python根据出生日期获得年龄的方法
本文实例讲述了python根据出生日期获得年龄的方法.分享给大家供大家参考.具体如下: 这段代码可以根据用户的出生日期获得其年龄,born参数为date类型 def calculate_age(born): today = date.today() try: birthday = born.replace(year=today.year) except ValueError: # raised when birth date is February 29 # and the current ye
-
python根据出生日期返回年龄的方法
本文实例讲述了python根据出生日期返回年龄的方法.分享给大家供大家参考.具体实现方法如下: def CalculateAge(self, Date): '''Calculates the age and days until next birthday from the given birth date''' try: Date = Date.split('.') BirthDate = datetime.date(int(Date[0]), int(Date[1]), int(Date[2
-
微信小程序学习笔记之获取位置信息操作图文详解
本文实例讲述了微信小程序学习笔记之获取位置信息操作.分享给大家供大家参考,具体如下: 前面介绍了微信小程序文件上传.下载操作.这里分析一下获取位置信息操作. [获取当前位置信息]wx.getLocation() getlocation.wxml: <view> <button bindtap="getlocation">获取位置</button> </view> getlocation.js: Page({ getlocation: fu
-
Python对ElasticSearch获取数据及操作
使用Python对ElasticSearch获取数据及操作,供大家参考,具体内容如下 Version Python :2.7 ElasticSearch:6.3 代码: #!/usr/bin/env python # -*- coding: utf-8 -*- """ @Time : 2018/7/4 @Author : LiuXueWen @Site : @File : ElasticSearchOperation.py @Software: PyCharm @Descri
-
微信小程序学习笔记之登录API与获取用户信息操作图文详解
本文实例讲述了微信小程序学习笔记之登录API与获取用户信息操作.分享给大家供大家参考,具体如下: 前面介绍了微信小程序跳转页面.传递参数获得数据,这里来分析一下登录API与获取用户信息操作方法. [小程序登录]wx.login() app.js: App({ onLaunch: function () { // 登录 wx.login({ success: function (res) { if (res.code) { //发起网络请求 wx.request({ url: 'https://w
-
Spring实战之让Bean获取Spring容器操作示例
本文实例讲述了Spring实战之让Bean获取Spring容器操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
随机推荐
- html label标签的使用教程
- C++ 处理中文符号实例详解
- bootstrap多种样式进度条展示
- php 取得瑞年与平年的天数的代码
- CodeIgniter记录错误日志的方法全面总结
- YII Framework的filter过滤器用法分析
- Python爬虫辅助利器PyQuery模块的安装使用攻略
- HTML代码中标签的全部属性 中文注释说明
- Laravel框架中实现使用阿里云ACE缓存服务
- xcode中获取js文件的路径方法(推荐)
- servlet实现文件上传、预览、下载、删除功能
- android图片圆角、图片去色处理示例
- Java经典用法总结(二)
- Javascript 数组去重的方法(四种)详解及实例代码
- 使用php计算排列组合的方法
- php简单的上传类分享
- C语言实现xml构造解析器
- ios的collection控件的自定义布局实现与设计
- PHP实现RSA加解密算法示例(生成密钥位数为1024位的方法)
- Java位运算知识点详解