如何提取oracle timestamp列一個範圍的資料
--建立測試表
SQL> create table t_timestamp(a timestamp);
Table created
--插入幾條測試資料
SQL> insert into t_timestamp values(systimestamp-1);
1 row inserted
SQL> insert into t_timestamp values(systimestamp);
1 row inserted
SQL> insert into t_timestamp values(systimestamp+1);
1 row inserted
SQL> commit;
Commit complete
--檢視測試資料
SQL> select * from t_timestamp;
A
--------------------------------------------------------------------------------
27-FEB-13 04.34.54.000000 PM
28-FEB-13 04.35.00.641000 PM
01-MAR-13 04.35.04.000000 PM
--檢視與timestamp相關初始化引數配置
SQL> show parameter timestamp
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_timestamp_format string
nls_timestamp_tz_format string
--配置當前會話的timestamp格式
SQL> alter session set nls_timestamp_format='yyyy-mm-dd hh24:mi:ss.ff';
Session altered
--查詢測試表的timestamp格式是否如願顯示
SQL> select * from t_timestamp;
A
--------------------------------------------------------------------------------
2013-02-27 16:34:54.000000
2013-02-28 16:35:00.641000
2013-03-01 16:35:04.000000
--trunc可加工timestamp,經加工的資料型別為date
SQL> select trunc(a),a from t_timestamp;
TRUNC(A) A
----------- --------------------------------------------------------------------------------
2013/2/27 2013-02-27 16:34:54.000000
2013/2/28 2013-02-28 16:35:00.641000
2013/3/1 2013-03-01 16:35:04.000000
--對trunc後的資料以to_char格式轉換
SQL> select trunc(a),to_char(trunc(a),'yyyy-mm-dd'),a from t_timestamp;
TRUNC(A) TO_CHAR(TRUNC(A),'YYYY-MM-DD') A
----------- ------------------------------ --------------------------------------------------------------------------------
2013/2/27 2013-02-27 2013-02-27 16:34:54.000000
2013/2/28 2013-02-28 2013-02-28 16:35:00.641000
2013/3/1 2013-03-01 2013-03-01 16:35:04.000000
--使用to_timestamp及接接字串提取2013-02-27及2013-02-28兩天所有的資料
SQL> select a from t_timestamp where a between to_timestamp('2013-02-27'||'00:00:00.000000','yyyy-mm-dd hh24:mi:ss.ff') and to_timestamp('2013-02-28'||'23:59:59.000000','yyyy-mm-dd hh24:mi:ss.ff');
A
--------------------------------------------------------------------------------
2013-02-27 16:34:54.000000
2013-02-28 16:35:00.641000
--顯式配置nls_timestamp_format後to_timestamp不用指定格式字串
SQL> select a from t_timestamp where a between to_timestamp('2013-02-27'||'00:00:00.000000') and to_timestamp('2013-02-28'||'23:59:59.000000');
A
--------------------------------------------------------------------------------
2013-02-27 16:34:54.000000
2013-02-28 16:35:00.641000
小結:
1,to_timestamp使用
2,拼接字串
3,或與不或配置nls_timestamp_format(非必選項)
4,確定時間範圍的起始點:即最先的時間點及最末的時間點
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-754979/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle如何插入timestamp資料Oracle
- C#+Arcengine實現GP工具中的extract by mask(提取掩膜),可以實現提取shp範圍的柵格資料,可用來獲得shp範圍的高程C#
- 資料型別範圍資料型別
- int/double資料範圍
- 列舉和列舉的取值範圍
- 列舉範圍內的字串字串
- 如何判斷一個元素是否在可視範圍
- 不可變陣列的範圍求和陣列
- oracle hint有效範圍Oracle
- ORACLE TIMESTAMP資料型別Oracle資料型別
- 如何快速簡單的實現 Excel資料按列提取Excel
- Oracle中的TIMESTAMP資料型別Oracle資料型別
- redis如何獲取有序集合指定範圍的個數Redis
- Oracle資料庫表範圍分割槽策略測試過程Oracle資料庫
- Oracle 如何快速的 duplicate 一個資料庫Oracle資料庫
- ORACLE DATE和TIMESTAMP資料型別的比較(一) (轉)Oracle資料型別
- UPDATE查詢結果範圍內的資料
- plsql_提取一個表多個列之和SQL
- 記錄一下MySql update會鎖定哪些範圍的資料MySql
- mongodb資料庫範圍分片資料分佈不均勻MongoDB資料庫
- SQL入門之8 限制插入資料的範圍SQL
- MongoDB之資料查詢(範圍運算)MongoDB
- 如何在linux中用命令產生一個範圍內的隨機數?Linux隨機
- 【VPD】使用Oracle VPD(Virtual Private Database)限制使用者獲取資料的範圍OracleDatabase
- python date 和 datetime 的取值範圍(對比 Mysql 的 datetime 和 timestamp)PythonMySql
- [LeetCode] Search for a Range 搜尋一個範圍LeetCode
- 生成某個範圍的隨機數隨機
- 如何確定一個嚴重規範化的資料庫系統?資料庫
- oracle資料型別date和timestamp的轉化Oracle資料型別
- Oracle日期時間範圍查詢Oracle
- CoffeeScript攻略4.5:定義陣列範圍陣列
- MySQL 唯一索引範圍查詢鎖下一個記錄的理解MySql索引
- Linux中 awk命令根據列的索引批次提取列的資料Linux索引
- 如何產生指定範圍的隨機數隨機
- DB2資料提取轉化的一個指令碼KCDB2指令碼
- 關於聯合索引,範圍查詢,時間列索引的幾個問題索引
- JS判定一個給定的時間在某個時間範圍內JS
- 巧用trunc函式,獲取某日期範圍內的資料函式