SAP HANA函数汇总(1)——时间函数

  刚好最近在看官方文档,做个记录。

一、时间函数汇总

ADD_DAYS Function (Datetime)
ADD_MONTHS Function (Datetime)
ADD_MONTHS_LAST Function (Datetime)
ADD_NANO100 Function (Datetime)
ADD_SECONDS Function (Datetime)
ADD_WORKDAYS Function (Datetime)
ADD_YEARS Function (Datetime)
CURRENT_DATE Function (Datetime)
CURRENT_MVCC_SNAPSHOT_TIMESTAMP Function (Datetime)
CURRENT_TIME Function (Datetime)
CURRENT_TIMESTAMP Function (Datetime)
CURRENT_UTCDATE Function (Datetime)
CURRENT_UTCTIME Function (Datetime)
CURRENT_UTCTIMESTAMP Function (Datetime)
DAYNAME Function (Datetime)
DAYOFMONTH Function (Datetime)
DAYOFYEAR Function (Datetime)
DAYS_BETWEEN Function (Datetime)
EXTRACT Function (Datetime)
HOUR Function (Datetime)
ISOWEEK Function (Datetime)
LAST_DAY Function (Datetime)
LOCALTOUTC Function (Datetime)
MINUTE Function (Datetime)
MONTH Function (Datetime)
MONTHNAME Function (Datetime)
MONTHS_BETWEEN Function (Datetime)
NANO100_BETWEEN Function (Datetime)
NEXT_DAY Function (Datetime)
NOW Function (Datetime)
QUARTER Function (Datetime)
SECOND Function (Datetime)
SECONDS_BETWEEN Function (Datetime)
UTCTOLOCAL Function (Datetime)
WEEK Function (Datetime)
WEEKDAY Function (Datetime)
WORKDAYS_BETWEEN Function (Datetime)
YEAR Function (Datetime)
YEARS_BETWEEN Function (Datetime)

 二、时间函数用法

1.ADD相关函数
维度函数说明
ADD_NANO100将指定的 10^-7 单位的秒数添加到指定的 TIMESTAMP 值
ADD_SECONDS计算指定时间加上指定秒数的结果
ADD_DAYS计算指定日期加上指定天数的结果
ADD_MONTHS计算指定日期加上指定月数的结果
ADD_MONTHS_LAST计算指定日期加上指定月数的结果,如果输入日期是月份的最后一天,则输出日期也是月份的最后一天
ADD_YEARS计算指定日期加上指定年数的结果

select 
ADD_DAYS(current_date,30) "ADD_DAYS", --指定日期加上指定天数
ADD_MONTHS('2023-2-28',1) "ADD_MONTHS",--指定日期加上指定月份
ADD_MONTHS_LAST('2023-2-28',1) "ADD_MONTHS_LAST", --指定日期加上指定月数,如果输入日期是月份的最后一天,则输出日期也是月份的最后一天
ADD_NANO100(current_timestamp,864000000000) "ADD_NANO100",--指定的 10^-7 单位的秒数添加到指定的 TIMESTAMP 值
ADD_SECONDS(current_timestamp,86400) "ADD_SECONDS",--指定时间加上指定秒数
ADD_YEARS(current_date,1)--指定时间加上指定年数
from dummy

函数说明
ADD_WORKDAYS通过向起始日期添加一定数量的工作日来计算日期

这个函数我没有用过,它有一个前提,可以直接看官网定义:

为了使用 ADD_WORKDAYS 函数,SAP HANA 数据库中必须有一个工厂日历表 TFACS。在运行在 SAP HANA 数据库上的 SAP BW、SAP CRM 和 SAP ERP 系统中,表 TFACS 位于 ABAP 模式 SAP 中。对于其他 SAP HANA 数据库,可以从 SAP Business Suite 系统复制 TFACS 表。

当 为正时,计算出的日期是由 数量定义的期间后的下一个工作日。

当 为负时,计算出的日期是由 数量定义的期间前的上一个工作日。

 2.CURRENT相关函数

SELECT 
CURRENT_DATE, --当前日期
CURRENT_TIMESTAMP,--当前时间戳
CURRENT_MVCC_SNAPSHOT_TIMESTAMP(),--返回当前 MVCC 快照的时间戳,格式为 SSSS。
CURRENT_UTCDATE,--返回当前的 UTC 日期
CURRENT_UTCTIME,--返回当前的 UTC 时间
CURRENT_UTCTIMESTAMP,--返回当前的 UTC 时间戳
NOW()--当前时间戳
from dummy

3.提取日期的不同维度函数
函数说明
EXTRACT返回指定日期的请求部分
EXTRACT( {YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} FROM <date> )

select EXTRACT(DAY FROM CURRENT_DATE) FROM DUMMY --提取天数

 

 select
    current_timestamp ,
    SECOND(current_timestamp) "SECOND",--返回指定时间的秒部分。
    MINUTE(current_timestamp) "MINUTE",--返回指定时间的分钟的整数表示
    HOUR(current_timestamp) "HOUR",--返回指定时间中小时部分的整数表示
    DAYOFYEAR(current_timestamp) "DAYOFYEAR",--返回指定日期在一年中的天数的整数表示。
    DAYOFMONTH(current_timestamp) "DAYOFMONTH",--返回指定日期的月份中的日期。
    DAYNAME(current_timestamp) "DAYNAME",--返回指定日期的星期名
    ISOWEEK(current_timestamp) "ISOWEEK",--返回指定日期的 ISO 年份和周数
    WEEK(current_timestamp) "WEEK",--返回指定日期的周数,范围在1到54之间。
    WEEKDAY(current_timestamp) "WEEKDAY",--返回指定日期的星期几
    MONTH(current_timestamp) "MONTH",--返回指定日期的月份
    MONTHNAME(current_timestamp) "MONTHNAME",--返回指定日期的月份名称
    QUARTER(current_timestamp) "QUARTER",--返回指定日期的季度。
    DAYOFYEAR(current_timestamp) "DAYOFYEAR",--返回指定日期在一年中的日期的整数表示
    YEAR(current_timestamp) "YEAR"--返回指定日期的年份
from dummy

 4.BETWEEN时间差相关函数

 

select 
NANO100_BETWEEN(current_timestamp,ADD_NANO100(current_timestamp,864000000000)) "NANO100_BETWEEN",--计算两个日期之间的时间差,精确到0.1微秒。
SECONDS_BETWEEN(current_timestamp,ADD_SECONDS(current_timestamp,86400)) "SECONDS_BETWEEN",--计算两个指定日期之间的秒数。
DAYS_BETWEEN(to_date('2023-01-01'),current_date) "DAYS_BETWEEN",--计算两个日期之间的整天(24小时)数。
--WORKDAYS_BETWEEN    计算指定开始日期和结束日期之间的工作日数。
MONTHS_BETWEEN(to_date('2023-01-01'),current_date) "MONTHS_BETWEEN",--计算两个日期之间的月数。
YEARS_BETWEEN(to_date('2023-01-01'),current_date) "YEARS_BETWEEN"--计算两个指定日期之间的年数。
from dummy 

5.其他时间函数
函数说明
LAST_DAY返回包含指定日期的月份的最后一天的日期。
NEXT_DAY返回指定日期的次日的日期。

 select 
LAST_DAY(CURRENT_DATE),--指定日期的月份的最后一天的日期
NEXT_DAY(CURRENT_DATE) --指定日期的月份的后一天的日期
from DUMMY

 

函数说明
LOCALTOUTC一个时间戳参数,用于在UTC和本地时间之间转换时间。
UTCTOLOCAL将指定的时间戳在UTC和本地时间之间转换。

 select
UTCTOLOCAL (TO_TIMESTAMP('2012-01-01 01:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'EST') "utctolocal", 
LOCALTOUTC (TO_TIMESTAMP('2012-01-01 01:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'EST') "localtoutc"
from DUMMY

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值