我需要施加持續時間,以秒爲單位,十進制(18,0)到小時,分鐘和秒。Teradara:鑄造秒到小時,分鐘和秒
e.g.:
8192 Seconds => 2:16:32 (Hours:Minutes:Seconds)
我發現(here),我可以做到這一點,如果在秒數文本字符串,像這樣:
SELECT CAST(INTERVAL '8192' SECOND AS INTERVAL HOUR TO SECOND)
但是當我嘗試:
SELECT Event_Id
, CAST(INTERVAL Duration SECOND AS INTERVAL HOUR TO SECOND)
FROM EVENT_TABLE
WHERE <some conditions>
Event_Id和Duration均在表格中聲明爲十進制(18,0)EVENT_TABLE
Teradata的抱怨:
[錯誤3707]語法錯誤,預期類似的字符串或Unicode字符 '間隔' 的關鍵字和整數之間字面8
什麼是正確的語法或方法在這裏使用?
SOLUTION:基於BellevueBob的交
SELECT Event_Id
, CAST(
Duration SECOND * INTERVAL '0000:01' MINUTE TO SECOND /* 1 */
AS INTERVAL HOUR TO SECOND /* 2 */
)
FROM EVENT_TABLE
WHERE <some conditions>
說明:
- 乘以秒爲已知的持續時間與一個第二長度的間隔
- 轉換導致進入一個英寸的秒間隔幾小時,幾分鐘和幾秒鐘的時間。
什麼'選擇INTERVAL '8192' 秒'(這將是ANSI SQL) – 2013-05-11 10:00:53
@a_horse_with_no_name:可能是ANSI,但確實它使用列引用而不是字符串'8192'? (這__was__的問題......) – lexu 2013-05-19 16:32:36
那麼:'選擇duration_col_in_seconds *間隔從foo'1'秒' – 2013-05-19 16:56:53