時間格式匯總
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

浙公網安備 33010602011771號