2017-08-26 15 views
0

インパラの時間単位の計算方法は? 'DATEDIFF' 関数は、日だけで差分を返しインパラの時間単位の計算方法

Select datediff(hour,'2017-06-21T02:29:54.244720804Z', '2017-06-21T02:30:10.574379557Z'); 

以下のデフォルトのインパラのようなたとえば...

更新:あなたはこの回避策を適用することができ、私は

select cast(abs((unix_timestamp('2017-08-01 01:00:00', 'yyyy-MM-dd HH:mm:ss') - unix_timestamp('2017-08-01 00:00:00', 'yyyy-MM-dd HH:mm:ss'))/3600) as int); 

答えて

0

を考え出し ソリューション、

select datediff(time_a, time_b)*24 + hour(time_a) - hour(time_b); 
+0

は正しくありません。 * 24時間( '2017-08-16t12:00:00.000000000z'、 '2017-08-17t10:00:00.000000000z') - たとえば、 "datediff( '2017-08-16t12:00:00.000000000z'時間( '2017-08-17t10:00:00.000000000z')」=> -22となります。しかし、交換時間time_aとtime_b: "datediff( '2017-08-16t12:00:00.000000000z'、 '2017-08-17t10:00:00.000000000')* 24時間( '2017-08-16t12:00: 00.000000000z ')+時間(' 2017-08-17t10:00:00.000000000z ')=> -26。それは間違っている – user1269298

+0

ハァッですか? -22は正しいのではないか?あなたはtime_b - time_aが欲しいですか?両方を逆にするだけです。 ( '2017-08-17t10:00:00.000000000z'、 '2017-08-16t12:00:00.000000000z')* 24時間( '2017-08-16t12:00:00.000000000z')+時間( '2017-08-17t10:00:00.000000000z'); ' – Amos

+0

-22は正しいですが、pですが、スイッチtime_aとtime_bの後に結果は-26になります。上記の私のコメントを参照してください – user1269298

関連する問題