Datetime

martedì 18 luglio 2006 - 22.24

bluland Profilo | Guru

salve
ho una tabella in cui inserisco dei dati in tutti i campi tranne che nel campo data,
tale campo viene riempito poi con un update ed usando current_timestamp,
il campo è attualmente configurato ovviamente come datetime,
vorrei che nel primo inserimento, invece di restare il campo vuoto inserire una parola, ovviamente cio' con il campo configurato come datetime non è possibile farlo, allora vorrei passare da datetime a nvarchar, ho provato e tutto FUNZIONA!!

la DOMANDA:
QUESTO tipo di cambiamento, quindi avere un campo nvarchar invece che datetime mi comporterà dei problemi??

vorrei un consiglio!!

grazie a tutti
saluti
ENzo

alx_81 Profilo | Guru

Beh, sai com'è, cambiando il tipo dati a nvarchar, perdi tutte le funzionalità che un datetime nativo ti da (a meno che poi non lo casti in datetime, sprecando codice e abbassando le prestazioni), vedi operazioni sulle date, come datediff, dateadd, ecc. ecc..
Inoltre, la qualità e l'integrità dell'informazione sono molto minori in quanto in un nvarchar puoi inserire tutto quello che vuoi, e di conseguenza devi aumentare i controlli lato applicazione che esegue l'aggiornamento.

Un altro problema che può emergere a livello di prestazioni è che se per un datetime al massimo ti servono 8byte, per un nvarchar nella forma "ssaa-mm-gg hh:mm:ss.nnn" te ne servono molti di più (quasi 25).. L'occupazione su disco è pure maggiore..
Di solito, se un'informazione deve contenere una data, è giusto che il suo tipo sia datetime.
Al massimo puoi gestire applicativamente la presenza di un testo, quando la data è null, utilizzando la ISNULL(campo, valore).. come ad esempio:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Anche se pure questo è un workaround..
In alternativa potresti (nel caso asp.net 1.0/1.1) controllare il valore della cella in un datagrid e all'itemdatabound cambiarne al volo il valore se esso è null..

In questo modo, lato applicazione hai un semplice resultset da visualizzare.. e il dato rimane integro..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

il fatto e' che io non vorrei cambiarlo in nvarchar ma non riesco a recuperare la cella del datagrid quando e' nulla,
vedi:
http://www.dotnethell.it/Forum/messages.aspx?ThreadID=9154

bluland Profilo | Guru

il fatto e' che io non vorrei cambiarlo in nvarchar ma non riesco a recuperare la cella del datagrid quando e' nulla,
vedi:
http://www.dotnethell.it/Forum/messages.aspx?ThreadID=9154

alx_81 Profilo | Guru

ti ci guardo appena riesco..
ciaoo!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

ok cmq ho risolto come ti ho detto nell'altro 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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5