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

postgresqlを使用してタイムスタンプと数値をフォーマットするための2つの質問

    関数to_timestamp()のようです およびto_char() 残念ながら完璧ではありません。これ以上良いものが見つからない場合は、次の回避策を使用してください。

    with example_data(d) as (
        values ('2016-02-02')
        )
    select d, d::timestamp || '.0' tstamp
    from example_data;
    
         d      |        tstamp         
    ------------+-----------------------
     2016-02-02 | 2016-02-02 00:00:00.0
    (1 row)
    
    create function my_to_char(numeric)
    returns text language sql as $$
        select case 
            when strpos($1::text, '.') = 0 then $1::text
            else rtrim($1::text, '.0')
        end
    $$;
    
    with example_data(n) as (
        values (100), (2.00), (3.34), (4.50))
    select n::text, my_to_char(n)
    from example_data;
    
      n   | my_to_char 
    ------+------------
     100  | 100
     2.00 | 2
     3.34 | 3.34
     4.50 | 4.5
    (4 rows)
    

    参照:数値が整数の場合にto_charのドットを削除する方法



    1. --skip-grant-tablesでMySQLを起動する方法は?

    2. Oracle:2つの日付から平日を除外するまでの日数の負の数の処理方法

    3. PL / SQLでファイルをZIPする方法は?

    4. 別のテーブルの行で行を並べ替えて、注目のリストに入力する