一、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