在我的表結果列work_time
(interval
類型)顯示爲200:00:00
。是否有可能減少秒部分,所以它會顯示爲200:00
?或者,甚至更好:200h00min
(我已經看到它接受插入h
單位,所以爲什麼不加載它像這樣?)。 優選地,通過更改work_time
列,而不是通過更改select
查詢。如何從間隔欄中刪除秒?
0
A
回答
0
這不是你應該通過改變列而是通過以某種方式改變選擇查詢來完成的。如果您更改了列,您正在更改存儲和功能用途,但這並不好。要在輸出中對其進行更改,您需要修改其檢索方式。
您有兩個基本選項。第一種方法是直接修改您的選擇查詢,使用to_char(myintervalcol, 'HH24:MI')
但是,如果你的問題是,你必須要在你的SELECT查詢普及的通用格式,PostgreSQL有一個巧妙的方法我稱之爲「表的方法。 「您可以將函數附加到表中,以便可以用與新列相似(但不完全相同)的語法來調用它。在這種情況下,你會做這樣的事情:
CREATE OR REPLACE FUNCTION myinterval_nosecs(mytable) RETURNS text LANGUAGE SQL
IMMUTABLE AS
$$
SELECT to_char($1.myintervalcol, 'HH24:MI');
$$;
這工作該行輸入,而不是在基礎表。由於它始終爲相同的輸入返回相同的信息,因此可以將其標記爲不可變,甚至可以對輸出進行索引(這意味着它可以在計劃時間運行並使用索引)。
要叫這個,你會做這樣的事情:
SELECT myinterval_nosecs(m) FROM mytable m;
但你可以使用上面的特殊語法來重寫爲:
SELECT m.myinterval_nosecs FROM mytable m;
注意,因爲myinterval_nosecs是一個函數您不能在開始時忽略m.
。這是因爲查詢規劃器將用前面的語法重寫查詢,並且不會猜測您要運行它的關係。
相關問題
- 1. XSLT從時間戳中刪除毫秒
- 2. 從時間字段中刪除秒?
- 3. 從TimeSpan中刪除秒持續時間()
- 4. 如何刪除工具欄和RelativeLayout之間的分隔線
- 5. 如何從python中的日期時間字符串中刪除秒和毫秒
- 6. 如何從數據庫中檢索後刪除時間秒?
- 7. 如何從日期時間在軌中刪除毫秒數?
- 8. 如何從時間戳中刪除毫秒?
- 9. 如何使用sed從時間戳中刪除毫秒?
- 10. 刪除與間隔
- 11. 如何使用間隔時間/ settimeout從服務器node.js刪除/刪除數據?
- 12. 從toLocaleTimeString中刪除秒
- 13. Mysql:從紀元時間刪除秒
- 14. 從時間刪除秒(AWK,SED)
- 15. 從時間C#刪除秒鐘部分
- 16. 如何從Android Studio中刪除此欄?
- 17. 如何從間隔樹中刪除節點
- 18. 如何從svg文本中刪除上部間隔
- 19. 如何刪除UILocalNotification重複間隔?
- 20. 如何從timedelta刪除微秒
- 21. 刪除時間秒asp.net
- 22. 如何刪除欄之間的空格?
- 23. 如何刪除html欄中的垂直分隔符?
- 24. 在mysql中刪除時間戳間隔小於5秒的重複行
- 25. 組間隔時間間隔爲5秒
- 26. 組間隔時間間隔20秒
- 27. 刪除中間字符(毫秒)excel
- 28. 刪除間隔表的表
- 29. Python刪除分隔空間
- 30. 從OffsetDateTime刪除分,秒和納秒
如果你想顯示某些東西,['TO_CHAR'](http://www.postgresql.org/docs/current/static/functions-formatting.html)是你的朋友。請參閱[「間隔輸出」](http://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-INTERVAL-OUTPUT),以獲取影響間隔類型的默認輸出格式的方法。 –