sql >> データベース >  >> RDS >> PostgreSQL

間隔の最大解像度を決定する方法は?

    質問は100%明確ではないので、答えはあなたが探しているものと正確に一致する場合とそうでない場合がありますが...

    justify_interval()があります 調べたいと思うかもしれない関数。

    test=# select justify_interval(INTERVAL '100 days 3 seconds');
        justify_interval     
    -------------------------
     3 mons 10 days 00:00:03
    (1 row)
    
    test=# select justify_interval(TIME '20:05' - TIME '12:01:01');
     justify_interval 
    ------------------
     08:03:59
    (1 row)
    
    test=# select justify_interval(AGE(NOW(), NOW() - INTERVAL '1 MONTH'));
     justify_interval 
    ------------------
     1 mon
    (1 row)
    

    ゼロ以外の答えが見つかるまで、年、月、日などを抽出します。

    test=# select extract('mon' from interval '3 mons 10 days 00:00:03');
     date_part 
    -----------
             3
    

    コメントで他の質問を再確認してください:

    create function max_res(interval) returns interval as $$
    select case
           when extract('year' from justify_interval($1)) > 0 or
                extract('mon' from justify_interval($1)) > 0 or
                extract('day' from justify_interval($1)) > 0
           then '1 day'
           when extract('hour' from justify_interval($1)) > 0
           then '1 hour'
           when ...
           end;
    $$ language sql immutable strict;
    


    1. PostgreSQLでデータエントリが自動的に削除されるまでの有効期限を設定する方法はありますか?

    2. Mysq-Conectionアラビア語テキストをデータベースに挿入できるように設定する方法

    3. InnoDBとMyISAMのMySQLAtomicUPDATE

    4. MySQLユーティリティ-〜/.my.cnfオプションファイル