ventajas tutorial sirve requerimientos que para desventajas sql postgresql timestamp rounding greenplum

tutorial - postgresql windows



Dos preguntas para formatear la marca de tiempo y el nĂºmero usando postgressql (3)

Parece que las funciones to_timestamp() y to_char() lamentablemente no son perfectas. Si no puede encontrar nada mejor, use estas soluciones:

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)

Vea también: Cómo eliminar el punto en to_char si el número es un entero

Estoy seleccionando una columna de fecha que está en el formato "AAAA-MM-DD".

Quiero lanzarlo a una marca de tiempo tal que será "AAAA-MM-DD HH: MM: SS: MS"

Lo intenté:

select CAST(mycolumn as timestamp) from mytable;

pero esto dio como resultado el formato AAAA-MM-DD HH: MM: SS

También intenté

select TO_TIMESTAMP(mycolumn,YYYY-MM-DD HH:MM:SS:MS) from mytable;

pero esto tampoco funcionó. Parece que no puedo averiguar la forma correcta de formatear esto. Tenga en cuenta que solo quiero el primer dígito de los milisegundos.

//////////////segunda pregunta

También estoy tratando de seleccionar datos numéricos para que no haya ceros al final.

Por ejemplo, si tengo valores en una tabla como 1, 2.00, 3.34, 4.50.

Quiero poder seleccionar esos valores como 1, 2, 3.34, 4.5.

Intenté usar :: float, pero ocasionalmente obtuve resultados extraños. También probé la función de redondeo, pero ¿cómo podría usarla correctamente sin saber cuántos puntos decimales necesito de antemano?

¡gracias por tu ayuda!


solo agrega :: marca de tiempo sin zona horaria

select mycolumn::timestamp without time zone from mytable;


SELECT to_char(current_timestamp, ''YYYY-MM-DD HH:MI:SS:MS'');

huellas dactilares

2016-02-05 03:21:18:346