Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Definire una nuova data
martedì 27 agosto 2013 - 17.37
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
dompa72
Profilo
| Senior Member
245
messaggi | Data Invio:
mar 27 ago 2013 - 17:37
Come posso definire una data personalizzata in una variabile data??
Oggi per avere la data il giorno 01 di tre mesi fa scrivo:
Declare @DataOggi as DateTime= DateAdd(MONTH , -3 , GetDate());
Declare @DayOfMonth TinyInt Set @DayOfMonth = 01;
Declare @Month TinyInt Set @Month =Month(@DataOggi);
Declare @Year Integer Set @Year = YEAR(@DataOggi);
Declare @DataDel as Date = DateAdd(day, @DayOfMonth - 1,
DateAdd(month, @Month - 1,
DateAdd(Year, @Year-1900, 0)))
Vorrei evitare la funzione DateAdd ma utilizzare qualcosa tipo New date()
Dimenticavo utilizzo SQLServer 2008 R2
Grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 27 ago 2013 - 23:57
Ciao
>Vorrei evitare la funzione DateAdd
non esiste un costruttore per i tipi di dato t-sql.
quello che non capisco è cosa vorresti avere. Anche se avessi un New Date, comunque dovresti passare parametri al costruttore e per avere date a tre mesi fa, ad esempio, avresti comunque dovuto "calcolare" rispetto ad oggi. Certo, se sai già i valori di mese, giorno ed anno, puoi usare stringhe inizializzando il tuo datetime come ti serve.. Forse mi sfugge qualcosa?
>Grazie
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
dompa72
Profilo
| Senior Member
245
messaggi | Data Invio:
mer 28 ago 2013 - 11:26
Declare @DataOggi as DateTime= DateAdd(MONTH , -3 , GetDate());
Declare @DayOfMonth TinyInt = 01;
Declare @Month TinyInt = Month(@DataOggi);
Declare @Year Integer = YEAR(@DataOggi);
Declare @DataDel as Date = DateAdd(day, @DayOfMonth - 1, DateAdd(month, @Month - 1, DateAdd(Year, @Year-1900, 0)));
Delete from mytable where Data < @DataDel;
Come puoi vedere dal codice devo eliminare i record antecedenti al giorno 1 di tre mesi fa (preciso il primo giorno del mese)
Volevo sapere se c'era un modo più elegante e corretto per definire la data iniziale
Ciao e grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 29 ago 2013 - 23:55
>Come puoi vedere dal codice devo eliminare i record antecedenti
>al giorno 1 di tre mesi fa (preciso il primo giorno del mese)
>Volevo sapere se c'era un modo più elegante e corretto per definire
>la data iniziale
puoi usare un trick con DATEADD/DATEDIFF:
SELECT
CAST(DATEADD(month, DATEDIFF(month, 0, GETDATE())-3, 0) as DATE) as PrimoGiornoTreMesiFa
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
dompa72
Profilo
| Senior Member
245
messaggi | Data Invio:
mar 3 set 2013 - 18:41
L'ho provata e sembra funzionare
Ora devo implementarla
Grazie
Torna su
Stanze Forum
Elenco Threads
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 !