sql-函数-日期函数
时间函数分为三类。
第一类,基础,查询,
第二类,计算,根据数字返回日期或时间,加减,比较。
第三类,格式,将日期或时间转换为字符串,或字符串转换为时间。
1、查询
1.1 当前时间
select current_date; // 当前日期 select current_time; // 当前时间 select current_timestamp; 或 now() 或sysdate; // 返回系统时间 select utc_time; // 返回utc时间。 select utc_date; // 返回utc日期。 select unix_timestamp(date); // 返回时间戳
1.2 某部分
1.2.1 extract
格式:extract(date_part from date)
描述:从日期中获取某部分的信息。
参数:date_part的可选值为:
- MICROSECOND, second, minute, hour:毫秒,秒,分钟,小时。
- DAY, MONTH,YEAR:日,月,年。
- WEEK, QUARTER:周,季度。
组合:DAY, HOUR, MINUTE, SECOND。每一个向比自己小的时间单位进行组合。
秒:SECOND_ MICROSECOND
分钟:MINUTE_SECOND, MINUTE_MICROSECOND
小时:HOUR_MINUTE, HOUR_SECOND, HOUR_ MICROSECOND
天:DAY_HOUR, DAY_MINUTE, DAY_SECOND, DAY_ MICROSECOND
年月:YEAR-MONTH。
示例:select extract(year_month from now()) // 返回202009
1.2.2 年
select year(date); // 返回日期中的年份
1.2.3 月
select month(date); // 返回日期中的月份 select monthname(date); // 返回月份的英文名称。
1.2.4 周
select dayname(date); // 返回星期几,英文名称 select dayofweek(date);// 返回星期几,数字 select weekday(date);// 等价于dayofweek。 select week(date); // 返回当周属于今年的第几周。1-53之间。 select weekofyear(date);// 等价于week。
1.2.5 天
select dayofyear(date); // 返回当前是今年的第几天,1-365之间。 select dayofmonth(date); // 返回当前几号了。 select last_day(date); // 返回当月的最后一天。
1.2.6 时
select time(date); // 返回日期中的时间 select hour(date); // 返回日期中的小时数字
1.2.7 分
select minute(date); // 返回日期中的分钟数
1.2.8 秒
select second(date); //返回日期中的秒数。 select mircrosecond(date); // 返回毫秒数 select sec_to_time(num); // 返回秒对应的时间,类型为字符串。 select time_to_sec(str); // 返回字符串对应的秒,类型为数字。
2、计算
2.1 创建
makedate(year, dayOfYear); // 指定年份, 根据天数自动计算月份. maketime(hour, min, sec); // 指定小时,分钟,秒,返回时间字符串。
2.2 加减
格式:addDate(date, days) 或addDate(date INTERVAL n unit)
描述:日期加法。
参数:
days:默认单位为DAY,在当前日期加N天。
Interval n unit:其中interval关键字, n为数量,unit为日期单位,与extract中date_part的参数一致。
类似函数:
subdate,日期减法,参数完全相同。
subtime,减时间。
2.3 比较
select datediff(date1, date2); // 日期, 返回date1 -date2 select timediff(time1, time2); // 必须带有时间,返回time1 -time2
3、格式
3.1 date_format
格式:date_format(date, format)
描述:date显示为指定格式的字符串。
参数:format,特定格式。格式参考日期格式。
示例:
select date_format(now(), ‘%Y-%m-%d’); // 返回当前日期, 2020-01-01
类似的函数:
str_to_date(str, format); // 将字符串转换为日期。
time_format(date, format); // 将时间转换为特定格式的字符串。
作者:蜗牛旅行1899,书山有路勤为径,学海无涯苦作舟