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