您好,登錄后才能下訂單哦!
這篇文章主要介紹“postgresql之關(guān)于to_date()問題怎么解決”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“postgresql之關(guān)于to_date()問題怎么解決”文章能幫助大家解決問題。
這里是對postgresql 使用時踩的坑的記錄
上圖來一波官方文檔
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) 方法去進行操作。
錯誤:數(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è)資訊頻道,小編每天都會為大家更新不同的知識點。
免責(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)容。