目录
时间戳和日期相互转换函数:
unix_timestamp :日期格式转换成时间戳
from_unixtime :时间戳转换成日期格式函数
current_timestamp: 获取当前的时间戳
to_date: 将日期由字符串类型转换成日期类型
转特定日期单位的函数:
year: 获取年份
month: 获取月份
day: 获取某天
hour: 获取小时
date_diff: 获取相差天数
获取特定日期函数:
date_sub: 获取某个日期前X天的日期
date_add: 获取某个日期后X天的日期
last_day: 获取某月最后一天
next_day: 获取下一周星期几的日期
current_date: 获取某月最后一天
实用案例:
时间格式YYYYMMDD转换成YYYY-MM-DD
语法:
unix_timestamp([expr [, fmt] ] )
返回当前时间或指定时间的 UNIX 时间戳。
expr
:采用有效日期/时间格式的可选日期、时间戳或字符串表达式。fmt
:在 expr
为字符串时,指定格式的可选字符串表达式。示例:
> SELECT unix_timestamp('2016-04-08', 'yyyy-MM-dd');
1460041200
语法:
from_unixtime(unixTime [, fmt])
在 fmt
中返回 unixTime
。
unixTime
:BIGINT 表达式,表示自 1970-01-01 00:00:00 以来已经过去的秒数。fmt
:可选的具有有效格式的 STRING 表达式。示例:
> SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss');
1970-01-01 00:00:00
> SELECT from_unixtime(0);
1970-01-01 00:00:00
语法:
current_timestamp()
返回查询计算开始时的当前时间戳。
示例:
> SELECT current_timestamp();
2022-09-26 00:18:11.914
语法:
to_date(expr [, fmt] )
返回使用可选格式设置将 expr
转换为日期后的值。
expr
:表示日期的 STRING 表达式。fmt
:一个可选格式 STRING 表达式。示例:
> SELECT to_date('2009-07-30 04:17:52');
2009-07-30
> SELECT to_date('2016-12-31', 'yyyy-MM-dd');
2016-12-31
语法:
year(expr)
返回 expr
的年份部分。
expr
:一个日期或时间戳表达式。示例:
> SELECT year('2016-07-30');
2016
语法:
month(expr)
返回 expr
中时间戳的月份部分。
expr
:一个 TIMESTAMP 表达式或有效时间戳格式的字符串。示例:
> SELECT month('2016-07-30');
7
语法:
day(expr)
返回日期或时间戳的月份日期。
expr
:一个日期或时间戳表达式。示例:
> SELECT day('2009-07-30');
30
语法:
hour(expr)
返回时间戳的小时部分。
expr
:时间戳表达式。示例:
> SELECT hour('2009-07-30 12:58:59');
12
语法:
date_diff(endDate, startDate)
返回从 startDate
到 endDate
的天数。
endDate
:日期表达式。startDate
:日期表达式。示例:
> SELECT date_diff('2009-07-31', '2009-07-30');
1
> SELECT date_diff('2009-07-30', '2009-07-31');
-1
语法:
date_sub(startDate, numDays)
返回在 startDate
之前的日期 numDays
。
startDate
:一个日期表达式。numDays
:一个整数表达式。示例:
> SELECT date_sub('2016-07-30', 1);
2016-07-29
语法:
date_add(startDate, numDays)
返回在 startDate
之后的日期 numDays
。
startDate
:一个日期表达式。numDays
:一个整数表达式。示例:
> SELECT date_add('2016-07-30', 1);
2016-07-31
语法:
last_day(expr)
返回日期所属月份的最后一天。
expr
:一个 DATE 表达式。示例:
> SELECT last_day('2009-01-12');
2009-01-31
语法:
next_day(expr, dayOfWeek)
返回晚于 expr
并已按 dayOfWeek
中命名的第一个日期。
expr
:一个 DATE 表达式。dayOfWeek
:标识一周中某一天的 STRING 表达式。示例:
> SELECT next_day('2015-01-14', 'TU');
2015-01-20
dayOfWeek 必须是以下之一(不区分大小写):
'SU', 'SUN', 'SUNDAY'
'MO', 'MON', 'MONDAY'
'TU', 'TUE', 'TUESDAY'
'WE', 'WED', 'WEDNESDAY'
'TH', 'THU', 'THURSDAY'
'FR', 'FRI', 'FRIDAY'
'SA', 'SAT', 'SATURDAY'
语法:
current_date()
返回查询计算开始时的当前日期。
示例:
> SELECT current_date();
2020-04-25
【HQL实用】时间格式YYYYMMDD转换成YYYY-MM-DDhttps://blog.csdn.net/u013631103/article/details/126983750?spm=1001.2014.3001.5501