Oracle如何在SQL語句中對時(shí)間操作、運(yùn)算
0、date與timestamp
1)區(qū)別
date精確到年月日時(shí)分秒,timestamp更精確一些;
但這個(gè)不重要,重要的是,實(shí)踐中我從Oracle數(shù)據(jù)庫取date類型字段,前端展示時(shí)分秒都是0,網(wǎng)上說數(shù)據(jù)庫類型是date取到前端就是這樣,只能精確到日,后面都是默認(rèn)填0;
我給字段換成timestamp確實(shí)問題解決了,我理解不了!
2)轉(zhuǎn)換
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、獲取系統(tǒng)當(dāng)前時(shí)間
date類型的:
sysdate
timestamp類型的:
SYSTIMESTAMP
char類型的:
to_char(sysdate, ‘yyyy-mm-dd hh24:mi:ss’)
2、ORACLE里獲取一個(gè)時(shí)間的年、季、月、周、日的函數(shù):
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、日期操作
當(dāng)前時(shí)間減去7分鐘的時(shí)間
select sysdate - interval ‘7' MINUTE from dual;
當(dāng)前時(shí)間減去7小時(shí)的時(shí)間
select sysdate - interval ‘7' hour from dual;
當(dāng)前時(shí)間減去7天的時(shí)間
select sysdate - interval ‘7' day from dual;
當(dāng)前時(shí)間減去7月的時(shí)間
select sysdate - interval ‘7' month from dual;
當(dāng)前時(shí)間減去7年的時(shí)間
select sysdate - interval ‘7' year from dual;
時(shí)間間隔乘以一個(gè)數(shù)字
select sysdate - 8*interval ‘7' hour from dual;
4、常用的時(shí)間戳
//獲取當(dāng)年的一月一號(hào) to_date(concat((select to_char(sysdate,‘yyyy') from dual), ‘-01-01 00:00:00'),‘yyyy-MM-dd HH24:mi:ss') //date格式 //獲取這個(gè)月的一月一號(hào) 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、查詢某時(shí)間范圍
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';
總結(jié)
到此這篇關(guān)于Oracle如何在SQL語句中對時(shí)間操作、運(yùn)算的文章就介紹到這了,更多相關(guān)Oracle對時(shí)間操作運(yùn)算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Oracle查看正在執(zhí)行的sql語句的方法大全
- oracle數(shù)據(jù)庫查看鎖表的sql語句整理
- oracle轉(zhuǎn)mysql語句轉(zhuǎn)換實(shí)例代碼
- Oracle中sql語句如何執(zhí)行日志查詢
- oracle數(shù)據(jù)庫導(dǎo)入.dmp腳本的sql 語句
- ORACLE中如何找到未提交事務(wù)的SQL語句詳解
- SELECT INTO 和 INSERT INTO SELECT 兩種表復(fù)制語句詳解(SQL數(shù)據(jù)庫和Oracle數(shù)據(jù)庫的區(qū)別)
- Oracle數(shù)據(jù)庫找到 Top Hard Parsing SQL 語句的方法
相關(guān)文章
Oracle中查看正在運(yùn)行的SQL進(jìn)程腳本分享
這篇文章主要介紹了Oracle中查看正在運(yùn)行的SQL進(jìn)程腳本分享,本文使用腳本實(shí)現(xiàn)了類似mysql show processlist命令的功能,需要的朋友可以參考下2014-10-10Oracle對兩個(gè)數(shù)據(jù)表交集的查詢
Oracle對兩個(gè)數(shù)據(jù)表交集的查詢...2007-03-03Oracle數(shù)據(jù)表保留一條重復(fù)數(shù)據(jù)簡單方法
最近開發(fā)的時(shí)候遇到一個(gè)任務(wù),需要對重復(fù)的數(shù)據(jù)進(jìn)行篩選,所以下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)表保留一條重復(fù)數(shù)據(jù)的簡單方法,需要的朋友可以參考下2023-11-11大表delete刪數(shù)據(jù)導(dǎo)致數(shù)據(jù)庫異常解決
這篇文章主要為大家介紹了大表delete刪數(shù)據(jù)導(dǎo)致數(shù)據(jù)庫異常解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07