0

3回の「最高」を返すロジックを実装しようとしています。私のDBフィールドは次のとおりです。

FIRST_TIME - this is a long value in milliseconds from the epoch
SECOND_TIME - also a long value in milliseconds from the epoch
THIRD_TIME - this is an Time field, representing US/Eastern time, like 08:30:52

私のロジックは次のようになります。

  1. FIRST_TIME が入力されている場合は、米国/東部時間に変換された HH:mm:ss でそれを返します
  2. SECOND_TIME (米国/東部時間に変換) が THIRD_TIME より遅い場合は、米国/東部時間で SECOND_TIME を返します。
  3. それ以外の場合は THIRD_TIME を返します

FROM_UNIXTIME を使用して HH:mm:ss の最初の 2 つのフィールドを取得できますが、それを適切なタイム ゾーンに変換する方法と、さらにフィールドを比較して最適な値を返す方法について混乱しています。

4

1 に答える 1

0

ニース、ありがとうマーク!これで、次を使用してエポック時間を時間値に変換できます。

TIME(CONVERT_TZ(FROM_UNIXTIME(SUBSTRING(FIRST_TIME,1,10)),'GMT','US/Eastern'))

残っているのは、MySQLを使用してロジックを整理する方法だけです。私はこれでそれを行うことができました:

(IF (FIRST_TIME IS NOT NULL,
    TIME(CONVERT_TZ(FROM_UNIXTIME(SUBSTRING(FIRST_TIME,1,10)),'GMT','US/Eastern')), 
IF(TIME(CONVERT_TZ(FROM_UNIXTIME(SUBSTRING(SECONT_TIME,1,10)),'GMT','US/Eastern')) > THIRD_TIME,
    TIME(CONVERT_TZ(FROM_UNIXTIME(SUBSTRING(SECOND_TIME,1,10)),'GMT','US/Eastern')),
THIRD_TIME))
) AS BEST_TIME,
于 2012-10-06T16:23:41.010 に答える