Power Builder - Fechas en SQL Server.. URGE...

   
Vista:
Imágen de perfil de Leonardo Daniel A.

Fechas en SQL Server.. URGE...

Publicado por Leonardo Daniel A. (198 intervenciones) el 02/05/2017 04:10:17
hola a todos tengo problemas con las fechas..... entre los DW de PB y SQL Server..

SQL server almacena asi yyyy-mm-dd y en powerbuilder necesito ponerlos asi mm/dd/yyyy y efectivamente agrego un nuevo registro al DW, capturo la fecha o la selecciono del calendario y le doy guardar y todo bien... veo la base de datos y se guarda bien la fecha, pero cuando hago un retrieve a ese DW la fecha se pierde y aparecen numeros y ??? que no tienen nada que ver con la fecha...! incluso si ejecuto una consulta me trae basura en el campo fecha... sera algun bug de PB 11.5 ????? porque en SQL server se ven bien los datos... hasta en Navicat tambien se ven bien...


Alguien me puede ayudar..... estoy detenido con esoo, y casi todos mis DW llevaran campos fecha porque hay que consultar por mes - año o entre fechas

2017-05-01_21-06-27
2017-05-01_21-03-31
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Fechas en SQL Server.. URGE...

Publicado por kip (2 intervenciones) el 02/05/2017 04:40:05
Hola, no se si esto pueda ayudarte ya que no se como estas mostrando los datos:

1
string(date(FECHA_DE_LA_BD), "dd/mm/yyyy")

Si no te funciona podrias mostrarnos como estas obteniendo los datos desde SQL SVR....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.

Fechas en SQL Server.. URGE...

Publicado por Leonardo Daniel A. (198 intervenciones) el 02/05/2017 07:22:21
Hola, pero donde pondria esa instruccion en PowerBuilder en el DataWindow o en la sentencia sql ?? aclaro que es un datawindow freeform actualizable...


pues este es el query que me genera el DataWindow al crearlo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT clientes.id_cliente,
     clientes.fecha_alta,
     clientes.nombre,
     clientes.domicilio,
     clientes.cod_postal,
     clientes.estado,
     clientes.ciudad,
     clientes.telefono,
     clientes.fax,
     clientes.contacto,
     clientes.email,
     clientes.limite_credito,
     clientes.status,
     clientes.fec_ult_mod,
     clientes.usuario
FROM clientes
WHERE clientes.id_cliente = :an_id
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

Fechas en SQL Server.. URGE...

Publicado por kip (2 intervenciones) el 03/05/2017 03:53:58
En el DataWindow que es donde muestras los datos no ? Ya que la consulta ta traer la fecha en el formato YYYY-mm-dd, aunque tambien puedes usar alguna funcion de SQL SVR para darle un formato a la fecha, por ejemplo:

1
SELECT CONVERT(VARCHAR(11),CONVERT(datetime,'2016-11-12'),101) AS 'FECHA'

Te deberia mostrar:

1
11/12/2016

O tambien:

1
SELECT CONVERT(VARCHAR(10),GETDATE(),101) AS 'FECHA'

1
05/03/2017

Entonces segun veo que lo guardas simplemente como un DATE, es por eso que coloque el ejemplo anterior, podrias probar asi:

1
SELECT CONVERT(VARCHAR(11),cliente.fecha_alta,101) AS 'fecha_alta'

Aunque yo ejecute une ejemplo con un string, no se si el valor que retorna el campo la funcion CONVERT lo detecta ya como un tipo DATE, asi que podrias intentar directamente asi:

1
SELECT CONVERT(VARCHAR(11),CONVERT(datetime,cliente.fecha_alta),101) AS 'fecha_alta'

Conviertiendo el string a un datetime para luego formatear....

Guia http://www.sql-server-helper.com/tips/date-formats.aspx

Pero creo que deberias probar trasformando en el DataWindow....

Nos cuentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Willian

Fechas en SQL Server.. URGE...

Publicado por Willian (40 intervenciones) el 16/05/2017 22:49:10
Prueba lo siguiente, no olvides de definir el formato en el campo de la DW
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//esto lo puedes colocar justo despues de tu conexion exitosa al server asi la session tendra formatos determinados por los SETs correspondientes
          string ls_formato_fecha_server, ls_idioma_server
	  string ls_set_fecha, ls_set_idioma
	  //te expongo en formatos fijo, pero yo tengo por .INI
 
	  ls_formato_fecha_server = 'dmy' //ProfileString("SIS.INI", 'GENERAL', "FECHA_FORMATO_SERVER", "dmy") //podes probar con otras opciones una de ellas te tiene que funcionar
//https://docs.microsoft.com/en-us/sql/t-sql/statements/set-dateformat-transact-sql
	  ls_idioma_server = 'Spanish' //ProfileString("SIS.INI", 'GENERAL', "IDIOMA_SERVER", "Spanish")//puede ser  us_english tambien
 
	  ls_set_fecha = "SET DATEFORMAT "+ls_formato_fecha_server
	  ls_set_idioma = "SET LANGUAGE "+ls_idioma_server
 
	  sqlca.autocommit = true
	  EXECUTE IMMEDIATE :ls_set_idioma USING SQLCA;
	  EXECUTE IMMEDIATE :ls_set_fecha USING SQLCA;
  	  sqlca.autocommit = false
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad