时间格式汇总
1. 两个日期相减 date_diff
datediff('2019-07-27',activity_date) between 0 and 29
2. 日期与数字相减或者相加
1. mysql 如下语法
where activity_date between date_add("2019-07-27",interval -29 day) and "2019-07-27"
或者date_sub
2. hive如下语法
spark-sql> SELECT
> id,
> name,
> event_date,
> date_sub(event_date, 7) AS adjusted_date
> FROM
> example_table;
3 日期格式问题.
1. 将字符串转换为日期 HIVE格式
SELECT to_date('2024-08-23', 'yyyy-MM-dd') AS date_col;
2. 将日期转换为字符串 HIVE格式
SELECT date_format(event_start, 'yyyy/MM/dd') AS formatted_dat from events ; 这个方式能获取到 字符串年月譬如
park-sql> select date_format(event_start, 'yyyy-MM') FROM EVENTS;
2024-01
2024-03
2024-07
4. 提取日期的年、月、日
SELECT
year(current_date) AS year_part,
month(current_date) AS month_part,
day(current_date) AS day_part;
DATE_FORMAT(order_date , '%Y-%m') LEFT(order_date ,7) month
4. 周函数
如下是 hive的函数 select dayofweek ('2022-02-27') ; --dayofweek展示的是周几 共计 7个值 , 6代表周五 =1 select weekofyear('2022-12-22') ; --51
5.HIVE获取当前日期
> SELECT CURRENT_DATE; 这个 mysql 和 hive语法一样. 2024-08-23 Time taken: 0.301 seconds, Fetched 1 row(s)
> SELECT current_timestamp ; -- 这个 mysql 和 hive一样
2024-08-23 14:20:34.285
> SELECT date_format(current_timestamp, 'yyyy-MM-dd HH:mm:ss') AS current_datetime;
2024-08-23 14:20:04