postgresql踩坑系列之關(guān)于to_date()問(wèn)題
postgresql關(guān)于to_date()問(wèn)題
這里是對(duì)postgresql 使用時(shí)踩的坑的記錄
上圖來(lái)一波官方文檔
PostgreSQL文檔地址 https://www.postgresql.org/docs/8.1/functions-formatting.html
1.to_date(text,text), 在PostgreSQL 里 也是將字符串轉(zhuǎn)換成日期, 但是 僅僅是年月日部分,就算我們?cè)诜椒ɡ镏付烁袷揭嗍侨绱?/p>
比如:
select to_date('2019-01-15 18:33:41','yyyy-MM-dd hh24:mi:ss');
結(jié)果就是
2019-01-15
沒(méi)看錯(cuò),就是這玩意。因此如果在項(xiàng)目里使用 這函數(shù)去對(duì)日期操作,比如 查詢(xún)某日某時(shí)某點(diǎn)某秒之前的訪(fǎng)問(wèn)數(shù)據(jù)量,當(dāng)入?yún)⒄_,那么計(jì)算很有可能是錯(cuò)誤的。因?yàn)闀r(shí)分秒 沒(méi)了,會(huì)自動(dòng)隱式轉(zhuǎn)換成 2019-01-15 00:00:00。和這數(shù)據(jù)比較,那么15號(hào)這天的數(shù)據(jù)都是不存在的。
而正確的使用姿勢(shì)應(yīng)該是:
select to_timestamp('2019-01-15 18:33:41','yyyy-MM-dd hh24:mi:ss')
結(jié)果就是
2019-01-15 18:33:41+00
后面的+00 就是計(jì)算時(shí)區(qū)的意思,00不計(jì)算。 這方法就是將字符串按照指定格式轉(zhuǎn)換成不帶時(shí)區(qū)(timestamp with time zone)的日期。
因此,在使用PostgreSQL進(jìn)行日期相關(guān)操作的時(shí)候如果沒(méi)有特殊要求盡量使用to_timestamp(text,text) 方法去進(jìn)行操作。
postgresql中to_date()函數(shù)使用
問(wèn)題
錯(cuò)誤:數(shù) to_date(timestamp without time zone, unknown) 不存在 Hint: 沒(méi)有匹配指定名稱(chēng)和參數(shù)類(lèi)型的函數(shù). 您也許需要增加明確的類(lèi)型轉(zhuǎn)換.
原來(lái)的使用方式是:
to_date(createddate,'YYYY-MM-DD') ?
解決方式
方法一:
to_date(createddate::text,'YYYY-MM-DD') ?
**方法二:**
to_date(cast(createddate as TEXT),'YYYY-MM-DD')?
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
PostgreSQL實(shí)現(xiàn)定期備份的方法
PostgreSQL定期備份功能可以自動(dòng)備份數(shù)據(jù)庫(kù),避免了手動(dòng)備份過(guò)程中可能發(fā)生的錯(cuò)誤,也極大地減輕了管理員的工作壓力,所以本文將給大家介紹一下PostgreSQL實(shí)現(xiàn)定期備份的方法,需要的朋友可以參考下2024-03-03PostgreSQL 中字段類(lèi)型varchar的用法
這篇文章主要介紹了PostgreSQL 中字段類(lèi)型varchar的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12基于PostgreSQL和mysql數(shù)據(jù)類(lèi)型對(duì)比兼容
這篇文章主要介紹了基于PostgreSQL和mysql數(shù)據(jù)類(lèi)型對(duì)比兼容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12PostgreSQL 數(shù)據(jù)庫(kù)跨版本升級(jí)常用方案解析
這篇文章主要介紹了PostgreSQL 數(shù)據(jù)庫(kù)跨版本升級(jí)常用方案解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03PGSQL實(shí)現(xiàn)判斷一個(gè)空值字段,并將NULL值修改為其它值
這篇文章主要介紹了PGSQL實(shí)現(xiàn)判斷一個(gè)空值字段,并將NULL值修改為其它值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01聊聊PostgreSql table和磁盤(pán)文件的映射關(guān)系
這篇文章主要介紹了聊聊PostgreSql table和磁盤(pán)文件的映射關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL查看數(shù)據(jù)庫(kù)占用空間大小的幾種常用方法
在PostgreSQL中,查看數(shù)據(jù)庫(kù)及數(shù)據(jù)表當(dāng)前數(shù)據(jù)的占用量可以通過(guò)執(zhí)行特定的SQL查詢(xún)來(lái)實(shí)現(xiàn),本文給大家介紹了幾種常用的方法,并通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-05-05基于postgresql數(shù)據(jù)庫(kù)鎖表問(wèn)題的解決
這篇文章主要介紹了基于postgresql數(shù)據(jù)庫(kù)鎖表問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12如何修改Postgresql默認(rèn)賬號(hào)postgres的密碼
PostgreSQL數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)postgres用戶(hù)作為數(shù)據(jù)庫(kù)的管理員,密碼隨機(jī),所以需要修改密碼,這篇文章主要給大家介紹了關(guān)于如何修改Postgresql默認(rèn)賬號(hào)postgres的密碼,需要的朋友可以參考下2023-10-10Postgresql數(shù)據(jù)庫(kù)角色創(chuàng)建登錄詳解
這篇文章主要為大家介紹了Postgresql數(shù)據(jù)庫(kù)角色創(chuàng)建登錄詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02