创建表
CREATE TABLE t1 (
t1 DATE,
t2 DATE
);
插入数据
INSERT INTO t1 VALUES (TRUNC(SYSDATE), SYSDATE);
select * from t1;
SELECT COUNT(*)
FROM t1
WHERE t1 = t2;
SELECT TO_CHAR(t1, ‘DD-MON-YYYY HH24:MI:SS’),
TO_CHAR(t2, ‘DD-MON-YYYY HH24:MI:SS’)
FROM t1;
SELECT TO_CHAR(t1, ‘DD-MM-YYYY HH24:MI:SS’),
TO_CHAR(t2, ‘DD-MM-YYYY HH24:MI:SS’)
FROM t1;
ALTER SESSION SET nls_date_format=‘DD-MON-YYYY HH24:MI:SS’;
SELECT * FROM t1;
SELECT COUNT()
FROM t1
WHERE TRUNC(t1) = ‘16/03/2020’;
SELECT COUNT()
FROM t1
WHERE TRUNC(t1) = TO_DATE(‘16/03/2020’,‘DD/MM/YYYY’);
SELECT COUNT()
FROM t1
WHERE TRUNC(t1) = TO_DATE(‘16/03/2020’);
ALTER SESSION SET nls_date_format=‘DD/MM/YYYY’;
SELECT COUNT()
FROM t1
WHERE TRUNC(t1) = DATE ‘2020-03-16’;
使用函数显示存储日期的内容
ALTER SESSION SET nls_date_format = ‘DD-MON-YYYY HH24:MI:SS’;
CREATE TABLE date_test AS
SELECT SYSDATE AS now
FROM dual;
select * from date_test;
SELECT now, dump(now) FROM date_test;
日期函数
SYSDATE:返回当前日期时间
SELECT SYSDATE FROM dual;
返回当前会话的日期时间
SELECT CURRENT_DATE FROM dual;
从指定日期增加或减去指定的月数。
SELECT SYSDATE, ADD_MONTHS(SYSDATE, 2),
ADD_MONTHS(SYSDATE, -2) FROM dual;
返回包含指定日期的月份的最后一天。
SELECT SYSDATE, LAST_DAY(SYSDATE) FROM dual;
NEXT_DAY:指定时间的下一个星期几
暂时没去想,为什么在sql显示会出问题
SELECT SYSDATE,NEXT_DAY(SYSDATE, ‘MONDAY’)
FROM dual;
SELECT SYSDATE,NEXT_DAY(SYSDATE, ‘星期一’)
FROM dual;
SELECT SYSDATE,NEXT_DAY(SYSDATE,1)
FROM dual;
NEW_TIME:将一个日期和时间值从一个时区转换到另外一个时区
SELECT SYSDATE,NEW_TIME(SYSDATE, ‘EST’, ‘PST’)
FROM dual;
分钟。
SELECT SYSDATE,TRUNC(SYSDATE, ‘MI’),
ROUND(SYSDATE, ‘MI’) FROM dual;
小时
SELECT SYSDATE,TRUNC(SYSDATE, ‘HH’),
ROUND(SYSDATE, ‘HH’) FROM dual;
天
SELECT SYSDATE,TRUNC(SYSDATE, ‘DD’),
ROUND(SYSDATE, ‘DD’) FROM dual;
返回当前星期的第一天(星期天)
SELECT SYSDATE,TRUNC(SYSDATE, ‘D’),
ROUND(SYSDATE, ‘D’) FROM dual;
显示周一是几号
SELECT SYSDATE,TRUNC(SYSDATE, ‘IW’),
ROUND(SYSDATE, ‘IW’) FROM dual;
select trunc(date’2020-3-11’,‘iw’) from dual;
按每月的1日为每周第一天
SELECT SYSDATE,TRUNC(SYSDATE, ‘W’),
ROUND(SYSDATE, ‘W’) FROM dual;
月 16号取整
SELECT SYSDATE,TRUNC(SYSDATE, ‘MM’),
ROUND(SYSDATE, ‘MM’) FROM dual;
季度 在两二个月的第16天四舍五入
SELECT SYSDATE,TRUNC(SYSDATE, ‘Q’),
ROUND(SYSDATE, ‘Q’) FROM dual;
对年的截取或四舍五入
SELECT SYSDATE,TRUNC(SYSDATE, ‘YY’),
ROUND(SYSDATE, ‘YY’) FROM dual;
select trunc(date’2020-6-11’,‘YY’),
ROUND(date’2020-9-11’,‘YY’) from dual;
SELECT SYSDATE,TRUNC(SYSDATE, ‘IY’),
ROUND(SYSDATE, ‘IY’) FROM dual
到本世纪初(1901、2001、2101等)
SELECT SYSDATE,TRUNC(SYSDATE, ‘CC’),
ROUND(SYSDATE, ‘CC’) FROM dual;