Maxcompute ODPS SQL 日期函数

article/2025/8/9 4:11:38

Maxcompute ODPS SQL 日期函数

日期函数

1.DATEADD
--按照指定的单位修改date的值--加1天dateadd(datetime, 1, 'dd') --减1天dateadd(datetime, -1, 'dd') --加20个月
--月份溢出,年份增加dateadd(datetime, 20, 'mm') --2005年2月没有29日
--日期截取当月最后一天dateadd(datetime, 1, 'mm')2.DATE_ADD
--按照幅度增减天数--加1天date_add( datetime, 1)--减1天date_add( datetime, -1)--加20天date_add( datetime, 20)3.DATEDIFF
--计算两个容日期的差值,并将差值以指定单位展示
datediff(end, start, 'yyyy')
datediff(end, start, 'dd') 
datediff(end, start, 'mm')
datediff(end, start, 'hh')
datediff(end, start, 'mi') 
datediff(end, start, 'ss') 4.DATEPART
--提取日期中指定单位的值
datepart(datetime, 'yyyy')
datepart(datetime, 'mm') 5.DATETRUNC
--返回日期指定单位的后的日期
datetrunc('2020-08-07 16:28:46', 'yyyy') = 2020-01-01 00:00:00
datetrunc('2020-08-07 16:28:46', 'month') = 2020-08-01 00:00:00
datetrunc('2020-08-07 16:28:46', 'DD') = 2020-08-07 00:00:006.GETDATE
--获取当前系统时间(东八区)select getdate();7.ISDATE
--判断一个日期能否按照指定的格式转换为一个日期值;
--转换成功为true,转换失败为false;isdate('2020-08-25 10:27:30','yyyy-mm-dd hh:mi:ss')8.LASTDAY
--截取所在月的最后一天lastday('2020-08-25 10:27:30')=2020-08-31 00:00:009.TO_DATE
--将字符串转成日期
to_date('Lisa2020-08*03', 'Lisayyyy-mm*dd') = 2020-08-03 00:00:00
to_date('20200818', 'yyyymmdd') = 2020-08-18 00:00:00
to_date('202008182030','yyyymmddhhmi') = 2020-08-18 20:30:00
to_date('2020818', 'yyyymmdd') = null --格式不符合,引发异常。
to_date('丽萨2020-08*3', '丽萨yyyy-mm*dd') = null --格式不符合,引发异常。
to_date('2020-08-01', 'yyyy') = null --格式不符合,引发异常。
to_date('20200830 15-13-12.345','yyyymmdd hh-mi-ss.ff3')=2018-10-30 15:13:1210.UNIX_TIMESTAMP
--将日期转成unix格式unix_timestamp(2020-08-25 10:41:30) = 1598323290 11.FROM_UNIXTIME
--将unix格式转成日期值from_unixtime(1598323290) = 2020-08-25 10:41:3012.WEEKOFYEAR
--返回日期位于那一年的第几周WEEKOFYEAR('2020-08-25 10:41:30')=3513.QUARTER
--返回一个日期的季度14.EXTRACT
--提取日期中指定的一部分SET odps.sql.type.system.odps2=true;
SELECT  extract(YEAR FROM '=2020-08-01 11:35:00') year,extract(MONTH FROM '2020-08-01 11:35:00') month,extract(DAY FROM '2020-08-01 11:35:00') day,extract(HOUR FROM '2020-08-01 11:35:00') hour,extract(MINUTE FROM '2020-08-01 11:35:00') minute;15.MONTHS_BETWEEN
--返回两个日期之间的月份数
SELECT months_between('2020-02-28 10:30:00', '2019-08-30'); = 5.949596774193548
SELECT months_between('2019-08-30','2020-02-28 10:30:00' ); = -5.94959677419354816.ADD_MONTHS
--返回增加月份后的日期add_months('2020-02-14',6)17.NEXT_DAY
--返回大于指定日期的下周几SELECT next_day('2020-08-25','TU');='2020-09-01'18.LAST_DAY
--返回所在月份的最后一天日期SELECT last_day('2020-08-25'); = '2020-08-25'19.FROM_UTC_TIMESTAMP
--将一个UTC时间的时间戳转换成一个指定时区的时间戳from_utc_timestamp(1598325107000, 'PST')from_utc_timestamp('2020-08-25 04:11:47','PST')from_utc_timestamp('2020-08-25','PST')20.CURRENT_TIMESTAMP
--返回当前时间的时间戳21.DAYOFMONTH
--获取日期的天22.SECOND
--返回秒23.MINUTE
--返回日期的分钟24.HOUR
--返回日期的小时25.DAY
--返回天26.MONTH
--返回月份27.YEAR
--返回年份

 


http://chatgpt.dhexx.cn/article/6MlPUDwY.shtml

相关文章

SQL中常用的日期函数

SQL中常用的日期函数 1.getdate()返回当前系统日期 select getdate() --2021-03-19 18:30:33.5632.dateadd(日期部分,常数,日期) 返回将日期的指定日期部分加常数后的结果 datesub(日期部分,常数,日期)返回将日期的指定日期部分…

零基础自学SQL课程 | SQL中的日期函数大全

大家好,我是宁一。 今天是我们的第21课:SQL中的日期函数。 MySQL中内置的日期函数,包括获取日期、日期格式化、日期计算,我们分别来看看。 1、获取日期函数 MySQL内置的获取日期时间函数: SELECT NOW() AS 当前日期时…

SQL数据库的导入和导出

SQL数据库的导入和导出 一、数据库数据的导出 右键要导出数据的数据库→任务→导出数据 点击下一步 选择数据源,默认点击下一步即可 安装需要导出文件类型(此处以EXCEL为例) 选择导出EXCEL文件的路径和名称 原因全部导出,点击下一…

sql连接本地数据库

sql连接本地数据库 安装好SQL 2008后,界面只有已安装的包和正在运行的包 左侧没有数据库,无法进行数据库操作. 这是因为打开软件后,会提示连接一个东西,连接的时候按照默认的话就会连接错。如果出现提示连接成功后的界面只有两个文…

QT-8-使用SQL数据库

数据库(掌握) Qt本身并没有数据库,但是Qt支持市面上绝大多数主流的数据库的连接,前提是运行Qt的电脑上也有对应的数据库产品。 在嵌入式领域、纯软件客户端领域都在使用SQLite数据库作为程序本地数据存储的方式。原因在于SQLite…

SQLServer数据库还原

百度上只有水文,一路下一步,毫无参考价值,只能自己写下来,帮助下童鞋们,上图 找到大门! 这里1号框框为备份文件的路径,就是在备份一文中备份的文件,不知道就去看看,或者继…

sql服务器密码如何显示,如何查看sql数据库密码

如何查看sql数据库密码 内容精选 换一换 tempdb是系统数据库,是一个全局资源,可供连接到 SQL Server 实例或 SQL 数据库的所有用户使用 。它是一个临时数据库,无法永久保存数据,作用是给实例中的各种请求处理中间数据,分为主数据文件(.mdf)、次要数据文件(.ndf)和日志文件…

VS连接SQL server数据库

目录 连接数据库 使用dataGridView控件显示表中的数据。 实现基本CRUD操作 连接数据库 打开vs,点击 视图,打开sql资源管理器,添加SQL Server 输入服务器名称,用户名,密码,进行连接。 如图,就…

sql mysql 删除数据库_如何清除SQL数据库中的数据?

展开全部 清除SQL数据库中的数据可以按照以下步骤进行: 1.首先需要注意的是,在删除数据库文件时,直接进636f707962616964757a686964616f31333365666165入文件夹删除数据库文件,这种行为是十分不准确的。 2.SQL Server中的数据库文…

VB.NET连接SQL数据库

VB.NET与SQL数据库的数据互通 一、准备工作二、VB.NET操作、代码、可能遇到的问题等 一、准备工作 ①本地网络连接的IP地址; ②已安装好的SQL软件(本例使用SQL2014); ③已安装好的Visual Studio 2019软件; ④用于VB.NET连接的数据库(登录名称…

解决SQL数据库无法附加

在附加数据库时遇到“附加数据库出错”。 1.在文件夹中查看需要附加的数据库:2.右键选择“属性”并选择“安全”选项卡:3.点击“编辑”后选择“添加”:4.输入“eve”后点击“检查名称”:5.确定后选中“Everyone”并勾选“完全控制…

SQL 数据库突然变成可疑

如图所示: 服务器上的数据库突然变成可疑,并且打不开。 解决办法: 1、先停掉数据库服务。 2、找到这个数据主数据文件和日志文件所在的位置,并把它们拷贝到一个新的地方(不停数据库服务,文件是禁止拷贝的…

sql数据库 ‘xxxxxx‘ 已存在,请选择其他数据库名称

出现这种报警是因为数据库中已经有了该数据库,因此我们可以重新命名。当然,我们也可以删除已有的数据库,有两种方法: 1、手动删除数据库 选中【数据库】,单击鼠标右键选择【刷新】,如下图所示,…

WinCC读取SQL数据库案例

使用场景:主线上有一台WinCC上位机,各单元有触摸屏,其中WinCC中存储用于自动化产线生产相关的配方数据,在自动生产模式时,将配方数据下发给各单元,在单元脱机模式时,单元内部触摸屏可选择要生产…

如何彻底修改SQL server的数据库名

公司自有的云服务器上的SQL server数据库里,建立了不少项目的数据库,最近需要把一个项目的最新版本代码同步到服务器上,发现本地使用的数据库名,在云服务器上已经存在了,且被用于开发其他项目的demo,为了保…

领域驱动设计在讲什么

概述 概念可以简单描述某类事物,这类事物可以是实体也可以是问题。领域驱动设计是为了管理系统复杂性问题而生的一套方法论。 随着业务系统的复杂性不断提高,系统的性能和灵活性要求也会越来越高,如何构建一个扩展性强、可用性高的业务系统…

SpringBoot-DDD领域驱动设计的概念

SpringBoot-DDD领域驱动设计的概念 大家都知道软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前通常需要进行大量的业务知识梳理,然后才能到软件设计的层面,最后才是开发。而在业务…

领域驱动设计--领域驱动设计到数据建模实践(十)

----- 学习笔记 ----- 过去,系统的软件设计是以数据库设计为核心,当需求确定下来以后,团队首先开始进行数据库设计。因为数据库是各个模块唯一的接口,当整个团队将数据库设计确定下来以后,就可以按照模块各自独立地进行…

领域驱动模型设计(二)

目录 领域事件 领域、子域、核心域、通用域和支撑域 限界上下文 划分限界上下文 数据流转 上下文映射图 上下文集成 上一篇粗略地介绍了为什么需要使用领域驱动模型设计?下面我们将一一讲解下领域驱动设计中的一些比较难懂,但是却十分基础的概念…

什么是DDD(领域驱动设计)?

领域驱动设计的基本概念 领域驱动设计作为一个针对大型复杂业务系统的领域建模方法体系(不仅限于面向对象的领 域建模),它改变了传统软件开发工程师针对数据库建模的方式,通过面向领域的思维方式,将要 解决的业务概念…