dificultad con openxml y datos datetime

20/01/2006 - 14:14 por Abraham Uribe | Informe spam
Hola compañeros.

Compañeros tengo el siguiente sp para leer un documento xml, pero tengo
problemas con los campos fechas ya que al ejecutar el sp me arroja el error
"Error de sintaxis al convertir una cadena de caracteres al tipo de datos
smalldatetime." que debo hacer para superar este error y trabar con datos
datetime

el documento xml es generado por una aplicacion hecha en visual foxpro 8.

Otra pregunta existe alguna funcion o forma de extraer solo la fecha de un
campo datetime que se pueda utiliza en la sentencia SELECT
es decir que en el resultado de la consulta los campos fechas solo muestren
la fecha sin la hora ?


Gracias de antemano por la ayuda que me puedan dar.


CREATE PROCEDURE spprueba xml
@DoctoXML TEXT
AS
declare @IdDocto int
exec sp_xml_preparedocument @IdDocto output, @DoctoXML
SELECT *
FROM OPENXML (@IdDocto, '/VFPData/curfacturas', 1) WITH
(codigo_agencia char(15), codigo_comprobante int, numero_comprobante
char(10), fecha_ultimo_interes smalldatetime)
EXEC sp_xml_removedocument @IdDocto
GO


declare @hxml varchar(8000)
set @hxml =' <?xml version="1.0" encoding="Windows-1252" standalone="yes"
?>
<VFPData>
<curfacturas codigo_agencia="001" codigo_comprobante="864"
numero_comprobante="1234567890" fecha_ultimo_interes="2006-01-04T00:00"/>
</VFPData>'


Abraham Uribe
Medellin-Colombia
 

Leer las respuestas

#1 Alejandro Mesa
20/01/2006 - 16:17 | Informe spam
Abraham,

1 - Para el problema de la fecha en el documento xml, debes usar el formato
correcto, que es "yyyy-mm-ddThh:mm:ss", pon los segundos como "00".

Ejemplo:

select cast('2006-01-04T00:00' as smalldatetime)

select cast('2006-01-04T00:00:00' as smalldatetime)
go

2 - Es preferible hacer este tipo de formato en la aplicacion cliente. De
todas maneras, SQL Server cuenta con la funcion "CONVERT", la cual te puede
servir.

Ejemplo:

select convert(char(10), getdate(), 126)
go


AMB

"Abraham Uribe" wrote:

Hola compañeros.

Compañeros tengo el siguiente sp para leer un documento xml, pero tengo
problemas con los campos fechas ya que al ejecutar el sp me arroja el error
"Error de sintaxis al convertir una cadena de caracteres al tipo de datos
smalldatetime." que debo hacer para superar este error y trabar con datos
datetime

el documento xml es generado por una aplicacion hecha en visual foxpro 8.

Otra pregunta existe alguna funcion o forma de extraer solo la fecha de un
campo datetime que se pueda utiliza en la sentencia SELECT
es decir que en el resultado de la consulta los campos fechas solo muestren
la fecha sin la hora ?


Gracias de antemano por la ayuda que me puedan dar.


CREATE PROCEDURE spprueba xml
@DoctoXML TEXT
AS
declare @IdDocto int
exec sp_xml_preparedocument @IdDocto output, @DoctoXML
SELECT *
FROM OPENXML (@IdDocto, '/VFPData/curfacturas', 1) WITH
(codigo_agencia char(15), codigo_comprobante int, numero_comprobante
char(10), fecha_ultimo_interes smalldatetime)
EXEC sp_xml_removedocument @IdDocto
GO


declare @hxml varchar(8000)
set @hxml =' <?xml version="1.0" encoding="Windows-1252" standalone="yes"
?>
<VFPData>
<curfacturas codigo_agencia="001" codigo_comprobante="864"
numero_comprobante="1234567890" fecha_ultimo_interes="2006-01-04T00:00"/>
</VFPData>'


Abraham Uribe
Medellin-Colombia



Preguntas similares