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
Formato di un valore datetime in sql server 2000
giovedì 18 dicembre 2003 - 18.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sheen77
Profilo
| Newbie
42
messaggi | Data Invio:
gio 18 dic 2003 - 18:35
Salve a tutti, il mio problema è il seguente:
debbo inserire giorno mese anno ore minuti secondi e millisecondi in una colonna, qual'è la sintassi per inserire questo valore? Riesco solo a inserire la data nel formato es: 18/12/2003
Ciao a tutti
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 18 dic 2003 - 23:25
Ciao,
premessa, non è bene utilizzare nel codice query sql dirette tipo SELECT, INSERT, UPDATE, ecc anche se a volte lo faccio anche io.
La procedura corretta è crearsi in T-SQL delle Stored Procedure che poi richiami dal tuo codice C# e/o VB.NET. In questo caso infatti è sufficiente che tu assegni la data al parametro della stored procedure, e fa tutto lui automaticamente, pensa che bello :)
Diversamente devi procedre con una query di questo tipo, molto bruttina:
INSERT INTO Tabella (Nome_Colonna) VALUES (CONVERT(DATETIME, '2003-12-10 14:44:46', 102))
Ciao
David
sheen77
Profilo
| Newbie
42
messaggi | Data Invio:
ven 19 dic 2003 - 10:46
Sicuramente hai ragione sulle stored procedure, ci ho lavorato in passato con Sybase.
La tua stringa funziona a meno però dei millisecondi che non vengono memorizzati nel DB.
Il risultato è nel db: 10/12/2003 14.44.46.
Sai se c'è un modo per memorizzare i millisecondi?
Ciao e grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 19 dic 2003 - 22:24
Direi che con un piccolo sforzo ci arrivi anche tu eh ? :)
INSERT INTO Tabella (nome_colonna) VALUES (CONVERT(DATETIME, '2003-12-10 14:44:46:111', 102))
ciao
david
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
sab 20 mar 2004 - 19:32
Ciao David,
il tuo suggerimento di utilizzare stored procedure parametriche è sicuramente la soluzione più efficiente.
> INSERT INTO Tabella (nome_colonna) VALUES (CONVERT(DATETIME, '2003-12-10 14:44:46:111', 102))
Volevo solo farti notare che non occore effettuare un cast della stringa in datetime:
USE tempdb
GO
/* Creo una tabella di test */
CREATE TABLE dbo.Test(
TestID int NOT NULL IDENTITY PRIMARY KEY,
TestDate datetime NOT NULL
)
GO
/* La popolo */
INSERT dbo.Test VALUES('2003-12-10 14:44:46.111')
GO
SELECT *
FROM dbo.Test
GO
/* Output:
TestID TestDate
----------- -----------------------
1 2003-12-10 14:44:46.110
(1 row(s) affected)
*/
/* Pulizia */
DROP TABLE dbo.Test
Inoltre dato che l'accuratezza del data type datetime è di 3.33 ms, il valore verrà approssimato per difetto.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org
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 !