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的可选值为:

  1. MICROSECOND, second, minute, hour:毫秒,秒,分钟,小时。
  2. DAY, MONTH,YEAR:日,月,年。
  3. 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); // 将时间转换为特定格式的字符串。

posted @ 2023-10-22 16:55  蜗牛旅行1899  阅读(12)  评论(0编辑  收藏  举报