sql 时间戳转换成日期_Maxcompute ODPS SQL 日期函数

Maxcompute ODPS SQL 日期函数

617d67d8e81a40e7ed68cbbd73a5b521.png

日期函数

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:00
 
6.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:00
    
9.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:12
    
10.UNIX_TIMESTAMP
--将日期转成unix格式
        unix_timestamp(2020-08-25 10:41:30) = 1598323290 
    
11.FROM_UNIXTIME
--将unix格式转成日期值
        from_unixtime(1598323290) = 2020-08-25 10:41:30
    
12.WEEKOFYEAR
--返回日期位于那一年的第几周
        WEEKOFYEAR('2020-08-25 10:41:30')=35
    
13.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.949596774193548
    
16.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
--返回年份
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值