cancel
Showing results for 
Search instead for 
Did you mean: 

Concatenar 2 campos en el Query Manager

Former Member
0 Kudos

Buen día expertos!

Tengo el requerimiento de concatenar 2 campos de una consulta, que sería la fecha del documento y la hora del documento en el formato hh:mm:ss

Quisiera en un solo campo, los campos "Fecha" y "Hora" del siguiente Query.

De tal manera que ese campo sea vea por ejemplo así -->      09/04/2016  13:51:22

El Query es el siguiente:


T0.Docdate as Fecha,

((case when LEN(convert (varchar,t0.CreateTS,110))=5 then ('0'+ substring (convert (varchar,T0.CreateTS,110),1,1)) 

    else substring (convert (varchar,T0.CreateTS,110),1,2) end) +':'

        +  SUBSTRING(convert(varchar, T0.CreateTS,110),2,2) +':'+ SUBSTRING(convert(varchar, T0.CreateTS,110),4,2)) as Hora

FROM OPQT T0

De antemano, Gracias!!!

Accepted Solutions (1)

Accepted Solutions (1)

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

prueba la siguiente sentencia SQL:

SELECT CAST(T0.Docdate AS NVARCHAR(10)) +  ((case when LEN(convert (varchar,t0.CreateTS,110))=5 then ('0'+ substring (convert (varchar,T0.CreateTS,110),1,1))        else substring (convert (varchar,T0.CreateTS,110),1,2) end) +':'          +  SUBSTRING(convert(varchar, T0.CreateTS,110),2,2) +':'+ SUBSTRING(convert(varchar, T0.CreateTS,110),4,2)) as Hora

FROM OPQT T0

Un saludo

Agustín Marcos Cividanes

gonzalogomez
Active Contributor
0 Kudos

Mejorando un poco la de Agustin

SELECT substring(CAST(T0.Docdate AS NVARCHAR(11)),5,2)+'/'+substring(CAST(T0.Docdate AS nvarCHAR(11)),1,3)+'/'+substring(CAST(T0.Docdate AS NVARCHAR(11)),8,4)+' '+ ((case when LEN(convert (varchar,t0.CreateTS,110))=5 then ('0'+ substring (convert (varchar,T0.CreateTS,110),1,1))        else substring (convert (varchar,T0.CreateTS,110),1,2) end) +':'          +  SUBSTRING(convert(varchar, T0.CreateTS,110),2,2) +':'+ SUBSTRING(convert(varchar, T0.CreateTS,110),4,2)) as Hora

FROM OPQT T0

Former Member
0 Kudos

Muchas gracias por tu apoyo Agustin.

Efectivamente el query me concatena los 2 campos, lo curioso es que el mes lo pone con letras.

Ejemplo hoy lo pone así: Apr 11 2016  12:38:15

Es extraño porque si yo mando llamar el campo Docdate solo, me lo pone en el formato 11/04/2016 pero con la concatenada lo pone Apr 11 2016

Former Member
0 Kudos

Muchas gracias Gonzalo, las modificaciones me ayuda a que quedo en el formato con las diagonales, pero me sigue pasando lo extraño que le comento a Aguston.

El mes me lo esta poniendo con letras en vez de numeros :S

gonzalogomez
Active Contributor
0 Kudos

Era realizar algún cambio...desde que tienes la consulta...cambias por aquí ... por allá y lo hubieras logrado...

SELECT cast(day(t0.docdate) as nvarchar(2))+'/'+cast(month(t0.docdate) as nvarchar(2))+'/'+cast(year(t0.docdate) as nvarchar(4))+' '+ ((case when LEN(convert (varchar,t0.CreateTS,110))=5 then ('0'+ substring (convert (varchar,T0.CreateTS,110),1,1))        else substring (convert (varchar,T0.CreateTS,110),1,2) end) +':'          +  SUBSTRING(convert(varchar, T0.CreateTS,110),2,2) +':'+ SUBSTRING(convert(varchar, T0.CreateTS,110),4,2)) as Hora

FROM OPQT T0

Former Member
0 Kudos

Muchas gracias!

Por lo general trato de intentarlo antes de preguntar en el foro, tendré en cuenta utilizar el CAST para otra ocación.

Gracias de nuevo.

Answers (0)