Spark-SQL常用内置日期时间函数
生活随笔
收集整理的這篇文章主要介紹了
Spark-SQL常用内置日期时间函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Spark-SQL常用內(nèi)置日期時(shí)間函數(shù)
一、獲取當(dāng)前時(shí)間
1、current_date
- 獲取當(dāng)前日期
- 時(shí)間格式:yyyy-MM-dd
結(jié)果顯示:
+--------------+ |current_date()| +--------------+ |2020-11-25 | +--------------+2、now()
- 獲取當(dāng)前日期時(shí)間
- 時(shí)間格式:yyyy-MM-dd HH:mm:ss.毫秒
結(jié)果顯示:
+-----------------------+ |current_timestamp() | +-----------------------+ |2020-11-25 11:02:50.484| +-----------------------+3、current_timestamp
- 獲取當(dāng)前日期時(shí)間
- 結(jié)果完全同now()
二、提取時(shí)間中的字段
1、year
- 提取時(shí)間中的年份
結(jié)果顯示:
+-----------------------+ |current_timestamp() | +-----------------------+ |2020-11-25 12:04:28.859| +-----------------------++----+ |year| +----+ |2020| +----+2、month
- 提取時(shí)間中的月份
結(jié)果顯示:
+-----------------------+ |current_timestamp() | +-----------------------+ |2020-11-25 12:07:44.976| +-----------------------++-----+ |month| +-----+ | 11| +-----+3、day、dayofmonth
- 提取日期中的天
- day 和 dayofmonth 效果完全相同
結(jié)果顯示:
+-----------------------+ |current_timestamp() | +-----------------------+ |2020-11-25 12:09:45.178| +-----------------------++---+ |day| +---+ | 25| +---++---+ |day| +---+ | 25| +---+4、hour
- 獲取時(shí)間小時(shí)
結(jié)果顯示:
+-----------------------+ |current_timestamp() | +-----------------------+ |2020-11-25 12:12:58.917| +-----------------------++----+ |hour| +----+ | 12| +----+5、minute
- 獲取時(shí)間分鐘數(shù)
結(jié)果顯示:
+-----------------------+ |current_timestamp() | +-----------------------+ |2020-11-25 12:14:47.916| +-----------------------++------+ |minute| +------+ | 14| +------+6、second
- 獲取時(shí)間秒數(shù)
結(jié)果顯示:
+------+ |second| +------+ | 25| +------+三、一年中第幾天\周\季度
1、dayofyear
- 獲取指定日期是當(dāng)年中的第幾天
結(jié)果顯示:
+------+ |dayNum| +------+ | 330| +------+2、weekofyear
- 獲取指定日期是當(dāng)年中的第幾周
結(jié)果顯示:
+-------+ |weekNum| +-------+ | 48| +-------+3、dayofweek、date_format
- 獲取指定日期是星期幾,可使用獲取當(dāng)前日期函數(shù)
- dayofweek 在hive2.2.0開始引入
- 版本較低的時(shí)候可以使用以下方式獲取日期是星期幾
- 注意函數(shù)中第二個(gè)參數(shù)為小寫 u
結(jié)果顯示:
+--------+ |weekMany| +--------+ | 3| +--------+4、quarter
- 返回指定日期為第幾季度
- 1到3月為一季度,三個(gè)月一個(gè)季度
結(jié)果顯示:
+------------------------------------------+ |quarter(CAST(current_timestamp() AS DATE))| +------------------------------------------+ | 4| +------------------------------------------+5、trunc
- 選擇年或月,選擇之后的日期用默認(rèn)值 01 表示
- 第一個(gè)參數(shù)為不帶時(shí)分秒的日期,需寫指定日期,不能用時(shí)間函數(shù)獲取當(dāng)前日期
- 第二個(gè)參數(shù)可選:"year"、"yy"、"month"、"mon"、"mm",否則返回 null
- 這里只處理日期,即結(jié)果只顯示日期
結(jié)果顯示:
+----------+ |year | +----------+ |2020-01-01| +----------+四、日期時(shí)間轉(zhuǎn)換
1、unix_timestamp
- 返回當(dāng)前時(shí)間的 unix 時(shí)間戳
- 可指定日期,指定日期的同時(shí)需要指定日期格式
結(jié)果顯示:
+----------+ | unix| +----------+ |1606302965| +----------++----------+ | unix| +----------+ |1606233600| +----------+2、to_unix_timestamp
- 將時(shí)間轉(zhuǎn)化為時(shí)間戳
- 第一個(gè)參數(shù)為時(shí)間,第二個(gè)參數(shù)為時(shí)間格式
- 可傳入獲取當(dāng)前日期函數(shù),此時(shí)不需要傳入日期格式
- 效果與unix_timestamp相同
3、from_unixtime
- 將時(shí)間戳換算成當(dāng)前時(shí)間
- 可自定義輸出日期格式,若不定義則為默認(rèn)yyyy-MM-dd HH:mm:ss
結(jié)果顯示:
+-------------------+ | time| +-------------------+ |2020-11-25 19:24:12| +-------------------+4、to_date、date
- 將字符串轉(zhuǎn)化為日期格式
- to_date、date效果完全相同
結(jié)果顯示:
+----------+ | time| +----------+ |2020-11-25| +----------+五、日期、時(shí)間計(jì)算
1、months_between
- 返回兩個(gè)日期之間的月數(shù)
結(jié)果顯示:
+----------+ | monNum| +----------+ |0.89760581| +----------+2、add_months
- 返回日期后n個(gè)月后的日期
結(jié)果顯示:
+--------------+ |afterMonthTime| +--------------+ | 2020-12-11| +--------------+3、date_add(加)、date_sub(減)
- 返回相加(減)n 天后的日期
結(jié)果顯示:
+----------+ | addDay| +----------+ |2020-11-28| +----------++----------+ | addDay| +----------+ |2020-11-22| +----------+4、datediff
- 兩個(gè)日期間的天數(shù),即兩個(gè)日期相減
結(jié)果顯示:
+----+ |diff| +----+ | 5| +----+5、last_day(date)
- 返回指定時(shí)間當(dāng)前月份的最后一天
結(jié)果顯示:
+----------+ | last_day| +----------+ |2020-10-31| +----------+6、next_day(start_date, day_of_week)
- 查找指定日期后第一個(gè)星期幾(第二個(gè)參數(shù))
- 即第二個(gè)參數(shù)為星期幾的英文縮寫
結(jié)果顯示:
+----------+ | next_day| +----------+ |2020-11-25| +----------+總結(jié)
以上是生活随笔為你收集整理的Spark-SQL常用内置日期时间函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC中的文件读写技术
- 下一篇: servlet与MySQL商品管理系统_