Conversione data da AS400 a Sql Server

mercoledì 04 febbraio 2009 - 13.51

sanzo77 Profilo | Newbie

Salve a tutti,
devo eseguire delle query su AS400 usando sql server management studio, ad esempio:
select sum (c.x*d.y)
from a, b, c, d
where a.codact = 'ELI' and
month(a.datexp) = '11' and
year(a.datexp) = '2008'

quando però eseguo ottengo:
Errore di overflow aritmetico durante la conversione di expression nel tipo di dati datetime.

Vado a vedere cosa è contenuto nei dati di as400 e vedo che le date vengono salvate come AAAAMMGG, formato che probabilmente sql server non riconosce... ho provato a dare un occhiata ai codici di conversione utilizzabili tramite la funzione CONVERT, ma non sembra esisterne uno che indichi la data come l'ho citata io.
Sapete aiutarmi?
Grazie :)

alx_81 Profilo | Guru

>Salve a tutti,
Ciao!

>devo eseguire delle query su AS400 usando sql server management studio, ad esempio:
su as400? Quindi hai un server linkato?

>Vado a vedere cosa è contenuto nei dati di as400 e vedo che le
>date vengono salvate come AAAAMMGG, formato che probabilmente
>sql server non riconosce... ho provato a dare un occhiata ai
>codici di conversione utilizzabili tramite la funzione CONVERT,
>ma non sembra esisterne uno che indichi la data come l'ho citata
>io.
In realtà su as400 quella data non so se è tipizzata come data. Prova a convertire prima il campo dataexp in stringa, con una CAST, prima di passarla alle funzioni MONTH e YEAR.

>Grazie :)
di nulla!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

sanzo77 Profilo | Newbie

Si, ho un linked server, quindi dici di fare un cast del tipo cast(datexp as varchar) ? e poi come lo passo month?

alx_81 Profilo | Guru

>Si, ho un linked server, quindi dici di fare un cast del tipo
>cast(datexp as varchar) ? e poi come lo passo month?
ho paura che tu debba passare a varchar e poi a datetime e solo alla fine usare le funzioni di data

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

sanzo77 Profilo | Newbie

Grazie mille, però ti smentisco, è bastato un solo cast a varchar, evidentemente month fa in automatico la conversione :)
Almeno per una query di prova, un pò più semplice di quella che ho scritto in topic, ha funzionato....
Grazie tante ancora, preziosissimo ^^

alx_81 Profilo | Guru

>Grazie mille
figurati, se ti ha aiutato, accetta la risposta così chiudiamo il thread.

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

sanzo77 Profilo | Newbie

fatto ;)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5