Inserire tramite update un campo datetime

mercoledì 24 ottobre 2007 - 10.14

ciccios100 Profilo | Junior Member

Ciao a tutti,
volevo chiedervi una cosa come faccio ad impostare un valore fisso in una colonna datatime di un database sqlserver05?...mi spiego meglio ho un database con dei dati anagrafici inseriti in colonne di tipo varchar,e ho una colonna riguardante l'ultima modifica di tipo datatime,vogilio impostare una data in tutte le colonne come faccio?ho provato con questa >>query UPDATE
>> dbo.Anag
>>SET
>> a_MDate = 09/07/2007
>>WHERE
>> a_MDate = 'NULL'
ma mi dice che non riesce a convertire una stringa in un datatime...ma non so come inserire nella query un dato di tipo date time

ciccios100 Profilo | Junior Member

no ho già provato ad inserire dei caratteri del tipo # ma sql server non li riconosce

lbenaglia Profilo | Guru

>query UPDATE
>>> dbo.Anag
>>>SET
> >> a_MDate = 09/07/2007
>>>WHERE
>>> a_MDate = 'NULL'
>ma mi dice che non riesce a convertire una stringa in un datatime...ma
>non so come inserire nella query un dato di tipo date time

Per ovviare a qualsiasi interpretazione errata della data, devi utilizzare il formato ANSI SQL 'YYYYMMDD':

UPDATE dbo.Anag SET a_MDate = '20070709' WHERE a_MDate IS NULL;

Per maggiori info leggi questo articolo di Tibor:
http://www.karaszi.com/SQLServer/info_datetime.asp

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

amelix Profilo | Expert

Prova con :
>CONVERT(DATETIME, ''2007-12-31'')


Andrea - http://www.MelisWeb.eu/

ciccios100 Profilo | Junior Member

correggo la mi affermazione il codice che mi ha proposto Lorenzo funziona correttamente....GRazie mille

amelix Profilo | Expert

>il codice che mi suggerisce Lorenzo sembra essere quello giusto,ma
>il problema ora nasce con l'istruzione IS NULL...sql server non
>riconosce 'IS',se sostituisco IS NULL con NULL invece non trova

6 sicuro?
IS NULL è il comando principale!!!
= NULL (senza virgolette altrimenti è una stringa) dovrebbe dare lo stesso risultato.

A.
Andrea - http://www.MelisWeb.eu/

amelix Profilo | Expert

Non dare a me meriti che non mi appartengono...
Dai a Lorenzo la risposta accettata...
Andrea - http://www.MelisWeb.eu/

lbenaglia Profilo | Guru

>IS NULL è il comando principale!!!
Cioé?

>= NULL (senza virgolette altrimenti è una stringa) dovrebbe dare
>lo stesso risultato.
Lo standard ANSI dice che = NULL restituisce UNKNOWN dato che NULL è un non valore.
Puoi disabilitare questo comportamento impostando a FALSE il parametro ANSI_NULL.
Per maggiori info leggi questo paragrafo dei Books Online:

"NULL Comparison Search Conditions"
http://msdn2.microsoft.com/en-us/library/aa196339.aspx

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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5