Mysql&Oracle中的日期

Mysql&Oracle中的日期

  • 1、mysql中的日期
    • 1.1、DATE_ADD(date, INTERVAL expr type)、DATE_SUB(date, INTERVAL expr type)
    • 1.2、STR_TO_DATE(str,format)
    • 1.3、DATE_FORMAT(date,format)
  • 2、Oracle中的日期
    • 2.1、日期加减法
    • 2.2、日期月份第一天和最后一天
    • 2.3、trunc函数

1、mysql中的日期

1.1、DATE_ADD(date, INTERVAL expr type)、DATE_SUB(date, INTERVAL expr type)

功能:函数向日期添加指定的时间间隔。
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。

select now() 'now',
	   DATE_ADD(now(),INTERVAL 2 DAY) 'now+2day';

在这里插入图片描述

select STR_TO_DATE('20210228','%Y%m%d') 'day',
	   DATE_ADD(STR_TO_DATE('20210228','%Y%m%d'),INTERVAL 1 DAY) 'day+1day';

在这里插入图片描述

type 参数可以是下列值:
MICROSECOND, SECOND 秒, MINUTE 分, HOUR 时, DAY, 天 WEEK, MONTH 月, QUARTER, YEAR 年, SECOND_MICROSECOND, MINUTE_MICROSECOND, MINUTE_SECOND, HOUR_MICROSECOND, HOUR_SECOND, HOUR_MINUTE, DAY_MICROSECOND, DAY_SECOND, DAY_MINUTE, DAY_HOUR, YEAR_MONTH

select STR_TO_DATE('20210228','%Y%m%d') 'day',
	   DATE_SUB(STR_TO_DATE('20210228','%Y%m%d'),INTERVAL 1 DAY) 'day-1day',
	   DATE_SUB(STR_TO_DATE('20210228','%Y%m%d'),INTERVAL 2 MONTH) 'month-2month';

在这里插入图片描述

select 
now() 'now', 
DATE_ADD(now(),INTERVAL -3 MONTH) 'now-3month',
DATE_ADD(DATE_ADD(now(),INTERVAL -3 MONTH),INTERVAL -7 DAY) 'now-3month-7day';

在这里插入图片描述

1.2、STR_TO_DATE(str,format)

功能:字符串 转 日期。

SELECT STR_TO_DATE('2021-07-18 16:20:30','%Y-%m-%d %H:%i:%s') AS result1,
	   STR_TO_DATE('2021-07-18 16:20:30','%Y-%m-%d') AS result2;

在这里插入图片描述

1.3、DATE_FORMAT(date,format)

功能:日期 转 字符串。

SELECT DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s') AS result1,
	   DATE_FORMAT(now(),'%Y-%m-%d') AS result2;

在这里插入图片描述

2、Oracle中的日期

2.1、日期加减法

SELECT SYSDATE "当前时间",
       SYSDATE + INTERVAL '1' YEAR "加一年",
       SYSDATE + INTERVAL '-1' YEAR "减一年",
       SYSDATE + INTERVAL '1' MONTH "加一月",
       SYSDATE + INTERVAL '1' DAY "加一天",
       SYSDATE + INTERVAL '1' hour "加一小时",
       SYSDATE + INTERVAL '1' minute "加一分钟",
       SYSDATE + INTERVAL '1' SECOND "加一秒"
FROM dual;

2.2、日期月份第一天和最后一天

SELECT to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天", 
       to_char(last_day(sysdate), 'yyyy-mm-dd') "本月最后一天" 
FROM dual;

2.3、trunc函数

--Oracle trunc()函数的用法 
/**************日期********************/
SELECT trunc(SYSDATE) FROM dual; --2022/4/25  今天的日期为2022-4-25 
SELECT trunc(SYSDATE, 'mm') FROM dual; --2022/4/1    返回当月第一天. 
SELECT trunc(SYSDATE, 'yy') FROM dual; --2022/1/1     返回当年第一天 
SELECT trunc(SYSDATE, 'dd') FROM dual; --2022/4/25    返回当前年月日 
SELECT trunc(SYSDATE, 'yyyy') FROM dual; --2022/1/1   返回当年第一天 
SELECT trunc(SYSDATE, 'd') FROM dual; --2022/4/24 (星期天)返回当前星期的第一天 
SELECT trunc(SYSDATE, 'hh') FROM dual; --2022/4/25 16:00:00   当前时间为2022/4/25 16:23:26
SELECT trunc(SYSDATE, 'mi') FROM dual; --2022/4/25 16:23:00   TRUNC()函数没有秒的精确 

/***************数字********************/
/* 
  TRUNC(number,num_digits) 
  Number 需要截尾取整的数字。 
  Num_digits 用于指定取整精度的数字。Num_digits 的默认值为0。 
  TRUNC()函数截取时不进行四舍五入 
*/
SELECT trunc(123.458) FROM dual; --123 
SELECT trunc(123.458, 0) FROM dual; --123 
SELECT trunc(123.458, 1) FROM dual; --123.4 
SELECT trunc(123.458, -1) FROM dual; --120 
SELECT trunc(123.458, -4) FROM dual; --0 
SELECT trunc(123.458, 4) FROM dual; --123.458 
SELECT trunc(123) FROM dual; --123 
SELECT trunc(123, 1) FROM dual; --123 
SELECT trunc(123, -1) FROM dual; --120

你可能感兴趣的:(mysql,mysql中的日期,DATE_ADD,STR_TO_DATE,DATE_FORMAT,Oracle中的日期)