1、获取当前时间
select getdate();
2、获取昨天(字符串格式)
select to_char(dateadd(getdate(),-1,'dd'),'yyyymmdd');
select ${bdp.system.bizdate};
3、时间做加减
函数:dateadd(),加减量可以是年月日小时分钟秒,例如获取当前时间上月、7天后当前时间
select dateadd(getdate(),-1,'mm');
select dateadd(getdate(),7,'dd');
4、获取上月初及上月最后一天(可类推到本月下月等等)
select concat(to_char(dateadd(getdate(),-1,'mm'),'yyyy-mm'),'-01');
select last_day(add_months(FROM_UNIXTIME(UNIX_TIMESTAMP()),-1));
5、截取时间中的特定值
select to_char(getdate(),'yyyymmddhhmiss');
年(yyyy)
月(mm)
天(dd)
小时(hh)
分钟(mi)
秒(ss)
6、字符串转日期
select to_date('20230320','yyyymmdd');
7、时间戳日期相互转化
select FROM_UNIXTIME(cast('1674048165' as bigint));
--如果是毫秒(13位)的话,需要除以1000转化为秒级,时间戳转时间时格式得为bigint
select unix_timestamp(getdate());
8、获取当前时间的年周及星期
select concat(to_char(getdate(),'yyyy'),'年',weekofyear(getdate()),'周');
select WEEKDAY(getdate());
9、获取时间差
select datediff(dateadd(getdate(),7,'dd'),getdate(),'dd');
--最后一个参数控制时间差地单位,可以是年月日小时分钟秒
10、判断一个日期字符串能否根据指定的格式串转换为一个日期值
select isdate('2023-03-20 18:00:52','yyyy-mm-dd hh:mi:ss');
--如果能转换成功,返回True;否则返回False。
11、获取各个日期单位的初始值
datetrunc()
select datetrunc(getdate(),'yyyy');--当前时间年初
select datetrunc(getdate(),'mm');--当前时间月初
select datetrunc(getdate(),'dd');--当前时间日初
12、返回大于当前日期并且与week相匹配的第一个日期,即下周几的具体日期。
select next_day(getdate(),'sat');
--第二个参数为星期的前两个或三个字母