postgreSQL 使用timestamp轉(zhuǎn)成date格式
嘗試了以下兩種方式,將pg中的timestamp格式轉(zhuǎn)換成date格式:
方式一:
select to_date( to_char( f.begin_time, 'yyyy-mm-dd' ), 'yyyy-mm-dd' ) from hafd f
方式二:
select f.begin_time::DATE from hafd f
大概比較了一下,9萬(wàn)條測(cè)試數(shù)據(jù),方式二的性能更好!
補(bǔ)充:PostgreSQL中的時(shí)間戳格式轉(zhuǎn)化常識(shí)
前提:當(dāng)數(shù)據(jù)庫(kù)中保存的是timestamp類型時(shí),我們需要通過(guò)這個(gè)時(shí)間戳來(lái)做樂(lè)觀數(shù)據(jù)鎖,那么久需要Select出來(lái),然后在更新的時(shí)候在Update的where條件中判斷時(shí)間戳是否與查詢時(shí)相同。
下面的SQL文查詢結(jié)果是 "2018-08-20 10:09:10.815125",并且返回類型可以當(dāng)String處理。返回json等都方便使用。
SQL> select to_char(updateTime, 'yyyy-mm-dd hh24:mi:ss.us') from tbl_A;
更新時(shí),參數(shù)傳入“2018-08-20 10:09:10.815125”的字符串,那么需要在SQL中轉(zhuǎn)化來(lái)匹配updateTime字段的timeStamp數(shù)據(jù)類型。
SQL> update tbl_A set username='XXX' where userid='001' and updateTime = to_timestamp('2018-08-20 10:09:10.815125','yyyy-mm-dd hh24:mi:ss.us');
另附表一張
| 函數(shù) | 返回類型 | 描述 | 例子 |
| to_char(timestamp, text) | text | 把時(shí)間戳轉(zhuǎn)換成字串 | to_char(current_timestamp, 'HH12:MI:SS') |
| to_char(interval, text) | text | 把時(shí)間間隔轉(zhuǎn)為字串 | to_char(interval '15h 2m 12s', 'HH24:MI:SS') |
| to_char(int, text) | text | 把整數(shù)轉(zhuǎn)換成字串 | to_char(125, '999') |
| to_char(double precision, text) | text | 把實(shí)數(shù)/雙精度數(shù)轉(zhuǎn)換成字串 | to_char(125.8::real, '999D9') |
| to_char(numeric, text) | text | 把numeric轉(zhuǎn)換成字串 | to_char(-125.8, '999D99S') |
| to_date(text, text) | date | 把字串轉(zhuǎn)換成日期 | to_date('05 Dec 2000', 'DD Mon YYYY') |
| to_timestamp(text, text) | timestamp | 把字串轉(zhuǎn)換成時(shí)間戳 | to_timestamp('05 Dec 2000', 'DD Mon YYYY') |
| to_timestamp(double) | timestamp | 把UNIX紀(jì)元轉(zhuǎn)換成時(shí)間戳 | to_timestamp(200120400) |
| to_number(text, text) | numeric | 把字串轉(zhuǎn)換成numeric | to_number('12,454.8-', '99G999D9S') |
| 模式 | 描述 |
| HH | 一天的小時(shí)數(shù)(01-12) |
| HH12 | 一天的小時(shí)數(shù)(01-12) |
| HH24 | 一天的小時(shí)數(shù)(00-23) |
| MI | 分鐘(00-59) |
| SS | 秒(00-59) |
| MS | 毫秒(000-999) |
| US | 微秒(000000-999999) |
| AM | 正午標(biāo)識(shí)(大寫(xiě)) |
| Y,YYY | 帶逗號(hào)的年(4和更多位) |
| YYYY | 年(4和更多位) |
| YYY | 年的后三位 |
| YY | 年的后兩位 |
| Y | 年的最后一位 |
| MONTH | 全長(zhǎng)大寫(xiě)月份名(空白填充為9字符) |
| Month | 全長(zhǎng)混合大小寫(xiě)月份名(空白填充為9字符) |
| month | 全長(zhǎng)小寫(xiě)月份名(空白填充為9字符) |
| MON | 大寫(xiě)縮寫(xiě)月份名(3字符) |
| Mon | 縮寫(xiě)混合大小寫(xiě)月份名(3字符) |
| mon | 小寫(xiě)縮寫(xiě)月份名(3字符) |
| MM | 月份號(hào)(01-12) |
| DAY | 全長(zhǎng)大寫(xiě)日期名(空白填充為9字符) |
| Day | 全長(zhǎng)混合大小寫(xiě)日期名(空白填充為9字符) |
| day | 全長(zhǎng)小寫(xiě)日期名(空白填充為9字符) |
| DY | 縮寫(xiě)大寫(xiě)日期名(3字符) |
| Dy | 縮寫(xiě)混合大小寫(xiě)日期名(3字符) |
| dy | 縮寫(xiě)小寫(xiě)日期名(3字符) |
| DDD | 一年里的日子(001-366) |
| DD | 一個(gè)月里的日子(01-31) |
| D | 一周里的日子(1-7;周日是1) |
| W | 一個(gè)月里的周數(shù)(1-5)(第一周從該月第一天開(kāi)始) |
| WW | 一年里的周數(shù)(1-53)(第一周從該年的第一天開(kāi)始) |
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL 實(shí)現(xiàn)查詢表字段信息SQL腳本
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)查詢表字段信息SQL腳本,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
Postgresql刪除數(shù)據(jù)庫(kù)表中重復(fù)數(shù)據(jù)的幾種方法詳解
本文詳細(xì)講解了Postgresql刪除數(shù)據(jù)庫(kù)表中重復(fù)數(shù)據(jù)的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
Postgresql中json和jsonb類型區(qū)別解析
在我們的業(yè)務(wù)開(kāi)發(fā)中,可能會(huì)因?yàn)樘厥狻練v史,偷懶,防止表連接】經(jīng)常會(huì)有JSON或者JSONArray類的數(shù)據(jù)存儲(chǔ)到某列中,這個(gè)時(shí)候再PG數(shù)據(jù)庫(kù)中有兩種數(shù)據(jù)格式可以直接一對(duì)多或者一對(duì)一的映射對(duì)象,接下來(lái)通過(guò)本文介紹Postgresql中json和jsonb類型區(qū)別,需要的朋友可以參考下2024-06-06
postgresql 實(shí)現(xiàn)查詢出的數(shù)據(jù)為空,則設(shè)為0的操作
這篇文章主要介紹了postgresql 實(shí)現(xiàn)查詢出的數(shù)據(jù)為空,則設(shè)為0的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
基于postgresql數(shù)據(jù)庫(kù)鎖表問(wèn)題的解決
這篇文章主要介紹了基于postgresql數(shù)據(jù)庫(kù)鎖表問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
聊聊PostgreSql table和磁盤(pán)文件的映射關(guān)系
這篇文章主要介紹了聊聊PostgreSql table和磁盤(pán)文件的映射關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
postgreSQL如何設(shè)置數(shù)據(jù)庫(kù)執(zhí)行超時(shí)時(shí)間
本文我們將深入探討PostgreSQL數(shù)據(jù)庫(kù)中的一個(gè)關(guān)鍵設(shè)置SET?statement_timeout,這個(gè)設(shè)置對(duì)于管理數(shù)據(jù)庫(kù)性能和優(yōu)化查詢執(zhí)行時(shí)間非常重要,讓我們一起來(lái)了解它的工作原理以及如何有效地使用它2024-01-01
PGSQL 實(shí)現(xiàn)查詢今天,昨天的數(shù)據(jù),一個(gè)月之內(nèi)的數(shù)據(jù)
這篇文章主要介紹了PGSQL 實(shí)現(xiàn)查詢今天,昨天的數(shù)據(jù),一個(gè)月之內(nèi)的數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
詳解如何在PostgreSQL中使用JSON數(shù)據(jù)類型
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它采用鍵值對(duì)的形式來(lái)表示數(shù)據(jù),支持多種數(shù)據(jù)類型,本文給大家介紹了如何在PostgreSQL中使用JSON數(shù)據(jù)類型,需要的朋友可以參考下2024-03-03

