如何提取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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 列舉和列舉的取值範圍
- 列舉範圍內的字串字串
- 資料型別範圍資料型別
- int/double資料範圍
- python date 和 datetime 的取值範圍(對比 Mysql 的 datetime 和 timestamp)PythonMySql
- [20191219]oracle timestamp資料型別的儲存.txtOracle資料型別
- Oracle 如何快速的 duplicate 一個資料庫Oracle資料庫
- 不可變陣列的範圍求和陣列
- Oracle TimestampOracle
- 如何快速簡單的實現 Excel資料按列提取Excel
- [20241009]oracle timestamp with time zone資料型別的儲存.txtOracle資料型別
- Oracle日期時間範圍查詢Oracle
- 記錄一下MySql update會鎖定哪些範圍的資料MySql
- PFMEA如何定義範圍?
- mongodb資料庫範圍分片資料分佈不均勻MongoDB資料庫
- Java個人學習筆記-資料型別及取值範圍Java筆記資料型別
- Linux中 awk命令根據列的索引批次提取列的資料Linux索引
- 生成某個範圍的隨機數隨機
- 如何確定一個嚴重規範化的資料庫系統?資料庫
- 大家如何確認測試範圍的?
- DB2資料提取轉化的一個指令碼KCDB2指令碼
- MySQL 唯一索引範圍查詢鎖下一個記錄的理解MySql索引
- matlab 從某個範圍內隨機取出一個整數Matlab隨機
- 關於聯合索引,範圍查詢,時間列索引的幾個問題索引
- mysql 資料型別TIMESTAMPMySQL 資料型別
- Oracle中Date和Timestamp的區別Oracle
- JS判定一個給定的時間在某個時間範圍內JS
- 如何產生指定範圍的隨機數隨機
- plotly 座標軸範圍截斷rangebreaks使用的一個注意點
- 如何讀取HDFS上的csv/tsv檔案的Timestamp列 - Qiita
- 如何獲得一個Oracle 23ai資料庫(docker容器)OracleAI資料庫Docker
- 一款強大的資料庫提取資料工具資料庫
- Origin2024中如何新增誤差帶?直觀檢視資料的變化範圍
- 如何從資料庫提取海波龍的組織主資料資料庫
- 使用 Carbon 獲取指定時間範圍內的日期陣列陣列
- (一)如何使用 Parsel 和 XPath 進行網頁資料提取網頁
- Oracle 對某列的部分資料建立索引Oracle索引
- 如何在bash中使用{}範圍表示式
- java 生成一個隨機整數,範圍從 1 到 10Java隨機