var get_end_time = "select CURRENT_TIME()"; var time_sql = {sqlText: get_end_time}; var time_create = snowflake.createStatement(time_sql); var time_exec_end = time_create.execute(); time_exec_end.next(); var end_time = time_exec_end.getColumnValue(1);Tengo este código arriba en un procedimiento almacenado de JavaScript en copo de nieve, esta consulta produce: 11:27:35.181000000
¿Cómo puedo quitar esto para que solo me dé 11:27:35?
El procedimiento de JavaScript devuelve el tipo como una cadena, por lo que el valor no se puede interpretar en copo de nieve como tiempo o para aplicar formatos de base de tiempo.
Código sin ningún formato para el tiempo -
CREATE OR REPLACE PROCEDURE test_time() RETURNS STRING LANGUAGE javascript AS $$ var get_end_time = "select CURRENT_TIME()"; var time_sql = {sqlText: get_end_time}; var time_create = snowflake.createStatement(time_sql); var time_exec_end = time_create.execute(); time_exec_end.next(); var end_time = time_exec_end.getColumnValue(1); return end_time; $$ ; call test_time();| TIEMPO DE PRUEBA |
|---|
| 06:20:47.250000000 |
Use TO_CHAR para obtener el formato deseado y devolver el mismo.
CREATE OR REPLACE PROCEDURE test_time() RETURNS STRING LANGUAGE javascript AS $$ var get_end_time = "select to_char(CURRENT_TIME())"; var time_sql = {sqlText: get_end_time}; var time_create = snowflake.createStatement(time_sql); var time_exec_end = time_create.execute(); time_exec_end.next(); var end_time = time_exec_end.getColumnValue(1); return end_time; $$ ; call test_time();| TIEMPO DE PRUEBA |
|---|
| 06:27:50 |
JavaScript no tiene un tipo de datos de fecha.
Si estamos utilizando un procedimiento basado en SQL que devuelve el tipo de fecha/marca de tiempo, entonces su interpretación es según el formato establecido.
En el siguiente código no se aplican funciones de formato.
create or replace procedure test_time() returns date language sql as $$ begin return (select current_timestamp()); end; $$ ; alter session set timestamp_output_format='hh24:mi:ss.sss'; call test_time();| TIEMPO DE PRUEBA |
|---|
| 07:03:48.48S |
alter session set timestamp_output_format='hh24:mi:ss.ff'; call test_time();| TIEMPO DE PRUEBA |
|---|
| 07:05:07.236000000 |
alter session set timestamp_output_format='hh24:mi:ss'; call test_time();| TIEMPO DE PRUEBA |
|---|
| 07:05:39 |