キャッシュSQLで(ObjectScriptのZDATETIME()と同様に)どの関数を使用して、エポックタイムスタンプからUTCタイムスタンプまでの秒数に変換できますか?ドキュメントを調べたところ、オブジェクトスクリプトでこれを行うための情報しか見つかりませんでした... SQLで使用できる関数は何ですか?ありがとう!
質問する
778 次
2 に答える
2
私はあなたがこのようなものを探していると思います。
DECLARE @epoch INT
SET @epoch = 1348519792
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, GETUTCDATE(), GETDATE()), DATEADD(s, @epoch, '19700101 00:00:00:000'))
于 2012-09-24T20:48:02.300 に答える
0
それを理解したので、すべて手動で変換する必要がありました。私は既存の関数を見つけるために永遠に費やしましたが、これが私がそれをした方法です:
select
TO_CHAR(substr(audit.stamp,1,5),'YYYY-MM-DD') AS Date,
CASE LEN(CAST(substr(audit.stamp,7)/3600 AS INT))
WHEN 2 THEN CAST(substr(audit.stamp,7)/3600 AS INT)
ELSE '0' || CAST(substr(audit.stamp,7)/3600 AS INT)
END || ':' ||
CASE LEN(CAST((substr(audit.stamp,7)/60)#60 AS INT))
WHEN 2 THEN CAST((substr(audit.stamp,7)/60)#60 AS INT)
ELSE '0' || CAST((substr(audit.stamp,7)/60)#60 AS INT)
END || ':' ||
CASE LEN(CAST(substr(audit.stamp,7)#60 AS INT))
WHEN 2 THEN CAST(substr(audit.stamp,7)#60 AS INT)
ELSE '0' || CAST(substr(audit.stamp,7)#60 AS INT)
END AS Time
from utility.audit
キャッシュSQLリファレンスマニュアルから引用:
CLOCKTIME
NEW
SET Time=$PIECE($HOROLOG,",",2)
SET Sec=Time#60
SET Totmin=Time\60
SET Min=Totmin#60
SET Milhour=Totmin\60
IF Milhour=12 { SET Hour=12,Meridian=" pm" }
ELSEIF Milhour>12 { SET Hour=Milhour-12,Meridian=" pm" }
ELSE { SET Hour=Milhour,Meridian=" am" }
WRITE !,Hour,":",Min,":",Sec,Meridian
QUITCLOCKTIME
NEW
SET Time=$PIECE($HOROLOG,",",2)
SET Sec=Time#60
SET Totmin=Time\60
SET Min=Totmin#60
SET Milhour=Totmin\60
IF Milhour=12 { SET Hour=12,Meridian=" pm" }
ELSEIF Milhour>12 { SET Hour=Milhour-12,Meridian=" pm" }
ELSE { SET Hour=Milhour,Meridian=" am" }
WRITE !,Hour,":",Min,":",Sec,Meridian
QUIT
ありがとう!
于 2012-09-26T20:40:03.837 に答える