0

サーバーのタイムゾーンをUTCに設定しました。ユーザーはUTC+2などの独自のタイムゾーンを選択できます。シフトが開いているか閉じているかを示すクエリを作成しました。

SELECT DAYNAME(NOW()), start_day
FROM Shifts
WHERE (start_day = LOWER(DAYNAME(NOW()))
       AND start_time < CURTIME()
       AND end_time > CURTIME())
   OR (start_day = LOWER(DAYNAME(DATE_SUB(NOW(), INTERVAL 1 DAY)))
       AND start_time < ADDTIME('24:00:00', CURTIME())
       AND end_time > ADDTIME('24:00:00', CURTIME()))

このクエリ、NOW()とCURTIME()を、各ユーザーの設定に一致するように変更したいと思います。カスタムUTCを挿入するには、クエリをどのように変更する必要がありますか?私が必要なことを達成する別の方法はありますか?

4

1 に答える 1

0

CONVERT_TZ関数はあなたの問題を解決します。

  • 構文

    CONVERT_TZ(dt、from_tz、to_tz)。

    「from_tz」はサーバーのタイムゾーン(この場合はUTC)です。

    「to_tz」値は、「+ 10:00」や「-6:00」など、「from_tz」からのオフセットを示す文字列として指定できます。

  • 例:

     SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','+2:00');
     SELECT CONVERT_TZ(NOW(), 'UTC', '-5:30');
     SELECT CONVERT_TZ(NOW(), '-2:00', '+5:00')
    
于 2013-01-26T12:51:42.000 に答える