[SQL Server] Problema con le date

venerdì 09 settembre 2005 - 22.58

JAEP Profilo | Newbie

Salve,
ho una stored procedure la quale accetta i seguenti parametri:
----
@mese as varchar(2),
@anno as varchar(4)
----

Al suo interno ho dichiarato una variabile datetime in questo modo

----
declare @DataFine datetime
----

bene...adesso, se faccio girare la stored su una versione italiana di SqlServer, devo impostare la variabile così:

----
set @DataFine=@giorno + '/' + @mese + '/' + @anno
----

diversamente, su una versione americana, la variabile @DataFine deve essere così costruita:

----
set @DataFine=@anno + '/' +@mese + '/' +@giorno
----

siccome la web application può è essere installata su entrambe le piattaforme, cìè un metodo per evitare l'incoveniente?

Io ho provato così:

----
set @DataFine=@anno+@mese+@giorno
set @DataFine=CONVERT(char(10), @DataFine, 103)
----

ma non ho ottenuto un tubo....
Grazie mille:)

Cteniza Profilo | Guru

Prova a mettere la data nel formato iso:
YYYY-MM-DDHH:MM:SS
ad esempio oggi 10 settembre 2005
2005-09-10
Oggi alle 8 e 10
2005-09-10080:10


JAEP Profilo | Newbie

Ho provato come mi hai detto tu...in questo modo

----
set @DataFine=@anno+'-'+@mese+'-'+@giorno
set @DataFine=CONVERT(char(10), @DataFine, 103)
----

Ho sempre il solito problema...non è che è sbagliato il parametro 103 nella funzione Convert?
Grazie
:)

Cteniza Profilo | Guru

Per il formato che ti ho suggerito secondo me dovresti provare con 126

lbenaglia Profilo | Guru

>siccome la web application può è essere installata su entrambe
> le piattaforme, cìè un metodo per evitare l'incoveniente?
>
>Io ho provato così:
>
>----
>set @DataFine=@anno+@mese+@giorno
>set @DataFine=CONVERT(char(10), @DataFine, 103)
>----
>
>ma non ho ottenuto un tubo....

Ciao JAEP,

utilizza il formato ISO YYYYMMDD senza alcun separatore concatenando le varie stringhe.
Se @Datafine è dichiarata come datetime o smalldatetime non è necessario effettuare alcun cast esplicito mediante le funzioni CAST o CONVERT dato che SQL Server effettuerà automaticamente un cast implicito da varchar a datetime (o smalldatetime).

Per maggiori info leggi il seguente Tip:
http://www.dotnethell.it/tips/SQLServerDates.aspx

>Grazie mille:)
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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