sql >> Database >  >> RDS >> PostgreSQL

Twee vragen voor het opmaken van tijdstempel en nummer met postgresql

Het lijkt erop dat de functies to_timestamp() en to_char() zijn helaas niet perfect.Als je niets beters kunt vinden, gebruik dan deze tijdelijke oplossingen:

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)

Zie ook:Hoe de punt in to_char te verwijderen als het getal een geheel getal is



  1. Android-fout:waarde <br van het type java.lang.String kan niet worden geconverteerd naar JSONObject

  2. Hoe SQL Server T-SQL-functie te gebruiken SUM:5 use-cases

  3. PHP - door MySQL voorbereide instructie om een ​​array in te voegen

  4. Waarom staat Postgres toe dat ik kolommen niet in de groep door heb?