您好,登錄后才能下訂單哦!
這篇文章主要介紹“postgresql之關于to_date()問題怎么解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“postgresql之關于to_date()問題怎么解決”文章能幫助大家解決問題。
這里是對postgresql 使用時踩的坑的記錄
上圖來一波官方文檔
1.to_date(text,text), 在PostgreSQL 里 也是將字符串轉換成日期, 但是 僅僅是年月日部分,就算我們在方法里指定了格式亦是如此
比如:
select to_date('2019-01-15 18:33:41','yyyy-MM-dd hh34:mi:ss');
結果就是
2019-01-15
沒看錯,就是這玩意。因此如果在項目里使用 這函數去對日期操作,比如 查詢某日某時某點某秒之前的訪問數據量,當入參正確,那么計算很有可能是錯誤的。因為時分秒 沒了,會自動隱式轉換成 2019-01-15 00:00:00。和這數據比較,那么15號這天的數據都是不存在的。
而正確的使用姿勢應該是:
select to_timestamp('2019-01-15 18:33:41','yyyy-MM-dd hh34:mi:ss')
結果就是
2019-01-15 18:33:41+00
后面的+00 就是計算時區的意思,00不計算。 這方法就是將字符串按照指定格式轉換成不帶時區(timestamp with time zone)的日期。
因此,在使用PostgreSQL進行日期相關操作的時候如果沒有特殊要求盡量使用to_timestamp(text,text) 方法去進行操作。
錯誤:數 to_date(timestamp without time zone, unknown) 不存在 Hint: 沒有匹配指定名稱和參數類型的函數. 您也許需要增加明確的類型轉換.
原來的使用方式是:
to_date(createddate,'YYYY-MM-DD')
方法一:
to_date(createddate::text,'YYYY-MM-DD')
方法二:
to_date(cast(createddate as TEXT),'YYYY-MM-DD')
關于“postgresql之關于to_date()問題怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。