hive下
select current_timestamp(); --获取当前时间
select to_date('2017-01-01'); --字符串转时间
select to_unix_timestamp('20170101','yyyyMMdd'); --字符串格式时间转时间戳
select date_add('2023-09-14',-20); --日期+几天
select add_months('2023-09-14', 1) --日期+几月
select DATEDIFF('2021-01-02','2021-01-01'); -- 获取两个日期之间差多少天
select months_between('2021-05-01','2021-03-01') -- 获取两个日期之间差多少月
datediff(from_unixtime(to_unix_timestamp('20180101','yyyyMMdd')),from_unixtime(to_unix_timestamp('20171212','yyyyMMdd')));--获取两个格式为yyyyMMdd时间的差值
select datediff(to_date('2023-01-01'),to_date('2017-01-02')) --获取两个格式为yyyy-MM-dd时间的差值
select substr(current_timestamp(),0,10); --切割字符串获得当前年月日
--select datediff(from_unixtime(unix_timestamp(),‘yyyy-MM-dd’),date_add(from_unixtime(unix_timestamp(),‘yyyy-MM-dd’),10));
问题记录:在学习日期操作函数时,用Dbeaver操作,一直报错,没有datediff关键字识别,最后发现原因是数据库链接断开
MySQL下
select
-- 获取当年年月日
CURDATE()
-- 获取当前时分秒
,CURTIME()
-- 时分秒时间类型转字符串
,DATE_FORMAT(CURTIME(), '%H:%i:%s') as now_str
-- 时分秒字符串转时间
,STR_TO_DATE('20:00:00', '%H:%i:%s')) as time2
-- 当前年月日时分秒
,now()
-- 年月日时分秒字符串转时间
,STR_TO_DATE('2025-01-22 12:34:56', '%Y-%m-%d %H:%i:%s') AS converted_datetime
-- 计算时间相差分钟数
,TIMESTAMPDIFF(MINUTE, '2025-01-22 22:00:00', now()) AS dif1