SQL函式之日期函式
1. 使用 TO_CHAR() 和 TO_DATE() 轉換時間值
TO_CHAR(x[,format]) 將x轉換為字串,該函式還可以為x提供可選引數format
TO_DATE(x[,format]) 將字串x轉換為DATE型別,該函式也提供了可選引數format
1.1 使用TO_CHAR() 將時間值轉換為字串
select to_char(sysdate,'MONTH DD,YYYY,HH24:MI:SS') from dual;
1.2 使用TO_DATE() 將字串轉換為時間值
select to_date('04,JUL-2014'),to_date('04-JUL-12') from dual; --(未指定格式,採用預設日期格式)
select to_date('2014-09-13','YYYY-MM-DD') from dual; (正確)
select to_date('2014-09-13','Y-MM-DD') from dual; (錯誤)
故:FORMAT的作用是用於格式化傳遞的字串。
select to_date('11.1.14','MM.DD.YY') from dual;
2. Oracle 對年份的處理
注:應該始終使用完整的4位年份,這樣,就不會對到底指哪一年產生混淆
3. 使用時間值函式
4. 使用時區
時區是當地時間與英格蘭格林威治時間的時差(UTC)
時間也可以使用地理區域來指定,例如,PST 表示太平洋標準時間,它比UTC 晚8個小時
4.1 與時區有關的函式
4.2 將時間值從一個時區轉換為另一個時區
select to_char(NEW_TIME(to_date('25-MAY-2012 19:45'),'DD-MON-YYYY HH24:MI'),'PST','EST'),
'DD-MON-YYYY HH24:MI') from dual;
5. 使用時間戳
TIMESTAMP 'YYYY-MM-DD HH24:MI:SS.SSSSSSSSS'
6. 與時間戳有關的函式
select current_timestamp,localtimestamp,systimestamp from dual;
7. 使用時間間隔
注:時間間隔記錄的是一段時間長度(例如1年零3個月),而時間值或時間戳記錄的是特定的日期
和時間(例如2006年10月28日下午7點32分16秒)
7.1 使用INTERVAL YEAR TO MONTH 型別
CRATE TABLE coupons(
coupon_id INTEGER CONSTARINT coupons_pk PRIMARY KEY,
name VARCHAR2(30) NOT NULL,
duration INTERVAL YEAR(3) TO MONTH
);
要向資料庫提供INTERVAL YEAR TO MONTH 字面值,可以使用下面的簡化語法:
INTERVAL '[+|-][y][-m]' [YEAR[(years_precision)]] [TO MONTH]
7.2 使用INTERVAL DAY TO SECOND 型別
CREATE TABLE promotions
(
promotion_id INTEGER CONSTRAINT promotions_pk PRIMARY KEY,
name VARCHAR2(30) NOT NULL,
duration INTERVAL DAY(5) TO SECOND(4)
);
要向資料庫提供INTERVAL DAY TO SECOND 字面值,可以使用下面的簡化語法:
INTERVAL '[+|-][d] [h[:m[:s]]]' [DAY[(days_precision]]
[TO HOUR | TO_MINUTE | SECOND[(seconds_precision)]]
7. 與時間間隔有關的函式
7.1 NUMTODSINTERVAL()
SELECT NUMTODSINTERVAL(1.5,'DAY'),
NUMTODSINTERVAL(3.25,'HOUR'),
NUMTODSINTERVAL(5,'MINUTE'),
NUMTODSINTERVAL(10.12345,'SECOND')
FROM DUAL;
7.2 NUMTOYMINTERVAL()
SELECT NUMTOYMINTERVAL(1.5,'YEAR'),
NUMTOYMINTERVAL(3.25,'MONTH'),
NUMTOYMINTERVAL(3.7,'MONTH') ==> (四捨五入對月份)
FROM DUAL;
select sysdate,add_months(sysdate,-12) from dual; -- 減12個月
select sysdate,add_months(sysdate,-1) from dual; -- 減1個月
select sysdate,to_char(sysdate-7,'yyyy-mm-dd hh24:mi:ss') from dual; -- 減一個星期(7天)
select sysdate,to_char(sysdate-1,'yyyy-mm-dd hh24:mi:ss') from dual; -- 減一天
select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd hh24:mi:ss') from dual; -- 減一小時
select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd hh24:mi:ss') from dual; -- 減一分鐘
select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd hh24:mi:ss') from dual; -- 減一秒鐘
相關文章
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- SQL-函式 - 聚合函式SQL函式
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- Clickhouse SQL日期處理函式及案例分享SQL函式
- sql函式SQL函式
- SQLSERVER日期函式(zt)SQLServer函式
- oracle 10g函式大全–日期型函式Oracle 10g函式
- 探索MySQL高階語句(數學函式、聚合函式、字串函式、日期時間函式)MySql函式字串
- Django筆記二十五之資料庫函式之日期函式Django筆記資料庫函式
- Sql 中的 left 函式、right 函式SQL函式
- T-SQL——函式——字串操作函式SQL函式字串
- 【SQL】19 SQL函式SQL函式
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- Clickhouse 時間日期函式函式
- Haskell 中的日期函式Haskell函式
- mysql日期函式總結MySql函式
- MYSQL事件使用 日期函式MySql事件函式
- T-SQL——函式——時間操作函式SQL函式
- Kotlin之“with”函式和“apply”函式Kotlin函式APP
- oracle interval日期函式的bug!Oracle函式
- SPL 的日期時間函式函式
- SQL 視窗函式SQL函式
- SQL LEN()函式用法SQL函式
- 常見函式之單行函式函式
- 《MySQL 入門教程》第 16 篇 MySQL 常用函式之日期函式MySql函式
- PHP函式漏洞審計之addslashes函式-PHP函式
- SQL SERVER 日期和時間資料型別及函式 (Transact-SQL)SQLServer資料型別函式
- 大資料開發-Hive-常用日期函式&&日期連續題sql套路大資料Hive函式SQL
- 日期加一天的函式函式
- MySQL 的日期和時間函式MySql函式
- PostgreSQLOraclePL/SQL相容性之-AGGREGATEUSINGClause聚合函式SQLOracleGC函式
- SQL中的cast()函式SQLAST函式
- SQL Server 2016 函式:CASTSQLServer函式AST
- 確定性函式改造sql函式SQL
- Spark SQL 開窗函式SparkSQL函式
- SQL---------儲存函式SQL儲存函式
- SQL Server常用函式整理SQLServer函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式