您的位置:首頁/技術文章
文章詳情頁

Oracle如何在SQL語句中對時間操作、運算

【字号: 作者:豬豬瀏覽:51日期:2023-03-12 15:25:15
目錄
  • 0、date與timestamp
  • 1、獲取系統當前時間
  • 2、ORACLE里獲取一個時間的年、季、月、周、日的函數:
  • 3、日期操作
  • 4、常用的時間戳
  • 5、查詢某時間范圍
  • 總結

0、date與timestamp

1)區別

date精確到年月日時分秒,timestamp更精確一些;

但這個不重要,重要的是,實踐中我從Oracle數據庫取date類型字段,前端展示時分秒都是0,網上說數據庫類型是date取到前端就是這樣,只能精確到日,后面都是默認填0;
我給字段換成timestamp確實問題解決了,我理解不了!

2)轉換

timeStamp --> date

TO_DATE(to_char(xxxTimestamp, "yyyy-mm-dd hh24:mi:ss"), "yyyy-mm-dd hh24:mi:ss")

date -->timeStamp

TO_TIMESTAMP(to_char(xxxDate, "yyyy-mm-dd hh24:mi:ss"), "yyyy-mm-dd hh24:mi:ss")

1、獲取系統當前時間

date類型的:

sysdate

timestamp類型的:

SYSTIMESTAMP

char類型的:

to_char(sysdate, ‘yyyy-mm-dd hh24:mi:ss’)

2、ORACLE里獲取一個時間的年、季、月、周、日的函數:

select to_char(sysdate, ‘yyyy" ) from dual; --年
select to_char(sysdate, ‘MM" ) from dual; --月
select to_char(sysdate, ‘dd" ) from dual; --日
select to_char(sysdate, ‘Q") from dual; --季
select to_char(sysdate, ‘iw") from dual; --周–按日歷上的那種,每年有52或者53周

3、日期操作

當前時間減去7分鐘的時間

select sysdate - interval ‘7" MINUTE from dual;

當前時間減去7小時的時間

select sysdate - interval ‘7" hour from dual;

當前時間減去7天的時間

select sysdate - interval ‘7" day from dual;

當前時間減去7月的時間

select sysdate - interval ‘7" month from dual;

當前時間減去7年的時間

select sysdate - interval ‘7" year from dual;

時間間隔乘以一個數字

select sysdate - 8*interval ‘7" hour from dual;

4、常用的時間戳

//獲取當年的一月一號
to_date(concat((select to_char(sysdate,‘yyyy") from dual), ‘-01-01 00:00:00"),‘yyyy-MM-dd HH24:mi:ss") //date格式
//獲取這個月的一月一號
SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1)) + 1 FROM DUAL; //date格式

char格式

SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)) + 1,‘yyyy-mm-dd HH24:mi:ss") FROM DUAL;

5、查詢某時間范圍

SELECT users.* 
FROM   users
WHERE  create_time >= "2021-12-01 00:00:00" 
AND  create_time <= "2021-12-06 00:00:00"

或者

SELECT users.* 
FROM   users
WHERE  create_time 
BETWEEN "2021-12-01" AND "2021-12-07";

總結

到此這篇關于Oracle如何在SQL語句中對時間操作、運算的文章就介紹到這了,更多相關Oracle對時間操作運算內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Oracle
国产综合久久一区二区三区