08.常用的时间函数

一、teradata相关的日期函数 1.可以使用 date 或者 cast,将字符串改为日期类型 2.extract选取年月日

        例如:extract(year from 日期字段) 从日期中取出年,取出月,日则分别为month,day

    3.interval增减年、月、日

        例如:extract (year from current_date + interval ‘01’ Year)  返回当前年加1年的年份    4.teradata日期类型数据,可能显示带-,但在使用过程中,可能是不需要的,根据实际情况而定    6.时间差:(日期a - 日期b) year/month/day

        例如:Select (date “2022-11-29” - date “2020-09-12”) month  返回26个月

    注意:月,年的时间差,返回对应的月,年的差值,而不会根据天去计算    select (date “2022-01-01” - date “2021-12-31”) year  返回值为1

    7.trunc函数:返回数据日期的月初或者年初:

        例如:select trunc(date “2020-09-12”,“mm”) 返回:2020-09-01;将参数 mm改成yy则返回:2020-01-01

    这个函数主要可以用来计算上月月底:    select trunc(date “2020-09-12”,“mm”) - 1,则返回:2020-08-31

    8.last_day,则是返回月末:

        例如:last_day(date “2022-09-12”) 返回:2022-09-30

二、mysql相关日期函数    1.cast可以将字符串转换为日期类型,但不习惯用,对字符串跟日期没有太明显的划分    2.提取年月日,直接用left,right,mid函数    3.date_add增减年、月、日

    例如:date_add('2022-01-02',interval 1 month) 返回:2022-02-02,month可以改成year,day;1可以为-1

    4.时间差:datediff,timestampdiff,两个函数可以返回时间差    datediff(结束时间,开始时间),返回时间差的天数    timestampdiff(参数,开始时间,结束时间),参数可以为day,month,year,分别返回时间差的日,月,年

        例如:datediff('2022-09-09','2022-09-01')  返回 8 ,表示时间差8天            timestampdiff(day,'2022-09-01','2022-09-09') 返回 8,表示时间差8天            timestampdiff(month,'2022-09-01','2022-10-30') 返回1,表示时间差1个月    timestampdiff 会去计算天数

    例如:timestampdiff(month,'2021-12-31','2022-01-01'),返回0,而不是像teradata返回1

    5.date_format,可以转换任何想要的日期格式,也可以用来求上个月月底:

        例如:select date_add(date_format('2022-09-09','%Y-%m-01'),interval -1 day) 返回:2022-08-31

你可能感兴趣的:(08.常用的时间函数)