십진수 (18,0)에서시, 분 및 초까지 초 단위로 측정 기간을 전송해야합니다.테라 다라 : 초당 시간, 분 및 초 주조
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_TABLE 테이블에서 Event_Id 및 Duration이 모두 10 진수 (18,0)로 선언됩니다.
테라 데이타는 불평 :
이[오류 3707가] 구문 오류가의 '간격'키워드와 정수 사이의 리터럴 문자열이나 유니 코드 문자와 같은 예상 뭔가 8
이란 무엇입니까 올바른 구문 또는 접근법을 사용 하시겠습니까?
해결책 : 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>
설명 :
- 곱하기 일초 길이의 간격으로 초 단위로 알려진 기간
- 변환 결과적으로 초의 인터벌이 시간, 분 및 초의 terval. 찾은 동일한 솔루션에서
에 대한 어떤 '선택 INTERVAL'8192 ''초 (즉, ANSI SQL 것) –
@a_horse_with_no_name : ANSI,하지만 수행 할 수 리터럴 문자열 '8192'대신 열 참조를 사용합니까? (그 질문을 __was__ ...) – lexu
무엇에 대해 :'선택 duration_col_in_seconds * foo에서 1 초' –