SQL-EXTRACT()
学习目标:
了解EXTRACT() 函数的用法
学习内容:
适用数据库
MySQL、PGSQL
× SQL server
(其他未测)
定义
EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。用于从一个date或者interval类型中截取到特定的部分
语法
EXTRACT(unit FROM date)
date 参数是合法的日期表达式,unit参数格式如下:
Unit 值 | 描述 |
---|---|
MICROSECOND | 毫秒 |
SECOND | 秒 |
MINUTE | 分 |
HOUR | 小时 |
DAY | 天 |
WEEK | 周 |
MONTH | 月 |
QUARTER | 季度 |
YEAR | 年 |
SECOND_MICROSECOND | 得到的是秒+毫秒 |
MINUTE_MICROSECOND | 得到的是分+秒+毫秒 |
MINUTE_SECOND | 得到的是分+秒 |
HOUR_MICROSECOND | 得到的是小时+分+秒+毫秒 |
HOUR_SECOND | 得到的是小时+分+秒 |
HOUR_MINUTE | 得到的是小时+分 |
DAY_MICROSECOND | 得到的是小时+分+秒+毫秒 |
DAY_SECOND | 得到的是小时+分+秒 |
DAY_MINUTE | 得到的是小时+分 |
DAY_HOUR | 得到的是小时 |
YEAR_MONTH | 得到的是年+月 |
返回时间日期特定部分
示例sql:
select extract(MICROSECOND from timestamp '2021-08-25 08:54:09.549'),
extract(SECOND from timestamp '2021-08-25 08:54:09.549'),
extract(MINUTE from timestamp '2021-08-25 08:54:09.549'),
extract(hour from timestamp '2021-08-25 08:54:09.549'),
extract(DAY from timestamp '2021-08-25 08:54:09.549'),
extract(WEEK from timestamp '2021-08-25 08:54:09.549'),
extract(MONTH from timestamp '2021-08-25 08:54:09.549'),
extract(QUARTER from timestamp '2021-08-25 08:54:09.549'),
extract(YEAR from timestamp '2021-08-25 08:54:09.549')
运行结果:
时间类型timestamp转date时,MICROSECOND、SECOND、MINUTE、 HOUR不适用
select extract(MICROSECOND from date '2021-08-25 08:54:09.549'),
extract(SECOND from date '2021-08-25 08:54:09.549'),
extract(MINUTE from date '2021-08-25 08:54:09.549'),
extract(hour from date '2021-08-25 08:54:09.549'),
extract(DAY from date '2021-08-25 08:54:09.549'),
extract(WEEK from date '2021-08-25 08:54:09.549'),
extract(MONTH from date '2021-08-25 08:54:09.549'),
extract(QUARTER from date '2021-08-25 08:54:09.549'),
extract(YEAR from date '2021-08-25 08:54:09.549')
获取两个日期之间的具体时间间隔
语法:
interval '{ integer | integer time_expr | time_expr }'
{ { day | hour | minute } [ ( leading_precision ) ] |
second [ ( leading_precision [, fractional_seconds_precision ] ) ] } [ to { day |
hour | minute | second [ (fractional_seconds_precision) ] } ]
leading_precision值的范围是0到9, 默认是2. time_expr的格式为:hh[:mi[:ss[.n]]] or mi[:ss[.n]] or ss[.n], n表示微秒.
范围值:
hour: 0 to 23
minute: 0 to 59
second: 0 to 59.999999999
示例:
interval '4 5:12:10.222' day to second(3) 表示: 4天5小时12分10.222秒interval '4 5:12' day to minute 表示: 4天5小时12分interval '400 5' day(3) to hour 表示: 400天5小时, 400为3为精度,所以"day(3)", 注意默认值为2.interval '400' day(3) 表示: 400天interval '11:12:10.2222222' hour to second(7) 表示: 11小时12分10.2222222秒interval '11:20' hour to minute 表示: 11小时20分interval '10' hour 表示: 10小时interval '10:22' minute to second 表示: 10分22秒interval '10' minute 表示: 10分interval '4' day 表示: 4天interval '25' hour 表示: 25小时interval '40' minute 表示: 40分interval '120' hour(3) 表示: 120小时interval '30.12345' second(2,4) 表示: 30.1235秒, 因为该地方秒的后面精度设置为4, 要进行四舍五入.interval '20' day - interval '240' hour = interval '10-0' day to second 表示: 20天 - 240小时 = 10天0秒
sql:
select interval '4 5:12:10.222' day to second(3),
interval '4 5:12' day to minute,
interval '400 5' day to hour,
interval '400' day,
interval '11:12:10.2222222' hour to second(7),
interval '11:20' hour to minute,
interval '10' hour,
interval '10:22' minute to second ,interval '10' minute,
interval '4' day ,
interval '25' hour,
interval '40' minute ,
interval '120' hour,
interval '30.12345' second ,
interval '20' day - interval '240' hour,
interval '10-0' day to second
运行结果:
unit剩下的参数运行示例
select extract(SECOND_MICROSECOND from timestamp '2021-08-25 05:54:09.549'),
extract(MINUTE_MICROSECOND from timestamp '2021-08-25 05:54:09.549'),
extract(MINUTE_SECOND from timestamp '2021-08-25 05:54:09.549'),
extract(HOUR_MICROSECOND from timestamp '2021-08-25 05:54:09.549'),
extract(HOUR_SECOND from timestamp '2021-08-25 05:54:09.549'),
extract(HOUR_MINUTE from timestamp '2021-08-25 05:54:09.549'),extract(DAY_MICROSECOND from timestamp '2021-08-25 05:54:09.549'),
extract(DAY_SECOND from timestamp '2021-08-25 05:54:09.549'),
extract(DAY_MINUTE from timestamp '2021-08-25 05:54:09.549'),
extract(DAY_HOUR from timestamp '2021-08-25 05:54:09.549'),
extract(YEAR_MONTH from timestamp '2021-08-25 05:54:09.549')
注意
- 只可以从一个date类型中截取年月日,从timestamp中获取年月日时分秒
- unit参数的后面11个在PGSQL中不可行,可在MySQL上运行
- DAY_与HOUR_结果相同
学习时间:
2021-08-25
总结
附:学习记录,方便查看
MySQL EXTRACT() 函数
SQL-EXTRACT()相关推荐
- 【SQL开发实战技巧】系列(十八):数据仓库中时间类型操作(进阶)INTERVAL、EXTRACT以及如何确定一年是否为闰年及周的计算
系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...
- SQL语句做报表统计
-- 一些用到的基本SQL函数 -- 返回日期中年的值: SQL YEAR 函数. -- 返回日期中月的值: SQL Month 函数. -- 返回日期中日的值: SQL Day 函数. -- DAT ...
- java 必备面试必备
1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...
- 报错,could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarExc
1.问题 { "timestamp": "2020-11-28 11:18:17", "status": 404, ...
- SQL中EXTRACT() 函数
EXTRACT()("提取"的意思) 函数用于返回日期/时间的单独部分,比如年.月.日.小时.分钟等等. 就是返回出来具体的年,月,日 2008-12-29 16:25:46.63 ...
- mysql sql w3cschool_SQL复习(w3school)笔记
SQL基础 1.SQL对大小写不敏感 2.DML(数据操作语言)与DDL(数据定义语言) a) DML SELECT UPDATE DELETE INSERT INTO b) DDL CREATE D ...
- oracle pl/sql 程序设计 历史笔记整理
20131016 周三 oracle pl/sql 程序设计 第2章 创建并运行pl/sql代码 sqlplus yjkhecc/yjkhecc@10.85.23.92:1521/orcl 在java ...
- SQL Date 函数
MySQL Date 函数 函数 描述 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 E ...
- 学习sql注入:猜测数据库_对于SQL的热爱:为什么要学习它以及它将如何帮助您...
学习sql注入:猜测数据库 I recently read a great article by the esteemed @craigkerstiens describing why he feel ...
- BIP_BI Pubisher的SQL/XSL/FO扩展函数应用(概念)
2014-12-01 Created By BaoXinjian 一.摘要 XML Publisher扩展了一些SQL和XSL,XSL-FO函数,使它们可以在RTF模板中使用.语法如下: 扩展SQL语 ...
最新文章
- linux升级补丁tar,Linux内核升级补丁安装手册(一)
- ES6新特性_变量的解构赋值---JavaScript_ECMAScript_ES6-ES11新特性工作笔记006
- 移动Web利器transformjs入门
- oracle c6,redhat6.8系统下安装oracle数据库
- macOS Catalina下RX580/Vega系列显卡启动后DP输出黑屏和ALC1220声卡无法驱动的解决方案
- 定时器name冲突会报错吗_部落冲突:冬季版本即将更新,多个超级兵种被曝光,会上线吗?...
- C语言基础教程篇之作用域规则
- 树莓派:漂洋过海来看你
- 【code vs】 2780 ZZWYYQWZHZ
- HWSD土壤数据集下载及打开方法
- BM3D、域变换与Non-Local
- Android Lottie动画
- (翻译)机器学习:E.coli数据集的不平衡多类分类
- java谷歌翻译_Java 调用 google 翻译
- cityscape train.txt 数据 python读取子文件夹内所有文件
- LAZARUS APT利用恶意word文档攻击MAC用户
- 使用@media screen解决分web不同分辨率问题
- PCL小工具二:使用kitti的GT(ground truth)建立激光点云地图
- 文字很浅显,但道理却不易懂
- Sicily 1466. Taunt Exposure Estimation
热门文章
- 使用 Vue 框架 实现经典例子:TodoMVC
- bzoj3609 [Heoi2014]人人尽说江南好 博弈
- “量子+生成式AI”!IBM联合生物制药公司Moderna进行疫苗研究
- 模板方法模式C++实现
- Ubuntu 20.04 配置静态 IP 地址
- 几种常用深度学习框架简介
- @NotEmpty、@NotBlank、@NotNull 区别和使用
- 计算机系大二学期计划范文,大学新学期计划
- Cocos打造纸片3D超美效果 《乱斗堂2》华丽来袭
- PAT 练习之 字符串排序 详解,超级详尽。