溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

postgresql之關(guān)于to_date()問題怎么解決

發(fā)布時間:2023-03-21 09:51:21 來源:億速云 閱讀:154 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“postgresql之關(guān)于to_date()問題怎么解決”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“postgresql之關(guān)于to_date()問題怎么解決”文章能幫助大家解決問題。

    postgresql關(guān)于to_date()問題

    這里是對postgresql 使用時踩的坑的記錄

    上圖來一波官方文檔

    postgresql之關(guān)于to_date()問題怎么解決

    1.to_date(text,text), 在PostgreSQL 里 也是將字符串轉(zhuǎn)換成日期, 但是 僅僅是年月日部分,就算我們在方法里指定了格式亦是如此

    比如:

    select to_date('2019-01-15 18:33:41','yyyy-MM-dd hh34: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 hh34: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')

    關(guān)于“postgresql之關(guān)于to_date()問題怎么解決”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI