2009-10-19 9 views
0

Comment définir une valeur nulle deafult dans un champ de date de la table, si le paramètre contenant la valeur de date est null?Comment définir la valeur null par défaut dans un champ de date dans sql server 2000?

+0

vous demandent comment définir null lors de l'insertion d'un champ de date nulle? – anishMarokey

+0

yes.if le paramètre date est null alors la valeur dafault sera '01/01/1900 '. Je veux que cela soit NULL – Adarsh

+2

Quelle est la définition de la table? Et comment les données arrivent-elles à SQL Server? Si 'NULL' est passé avec un INSERT ou UPDATE, alors une valeur NULL sera enregistrée. Si cela est traduit à une date, alors il s'agit d'un problème de définition de table (contrainte DEFAULT ou déclencheur) ou le code qui effectue l'insertion/mise à jour traduit NULL à une date. –

Répondre

0

Voulez-vous dire comment définir une valeur par défaut spécifique dans une procédure stockée lorsque le paramètre de date transmis est NULL?

Marquez votre paramètre de date comme ceci:

@DOB DATETIME = '01/01/1900'

Et le paramètre @DOB serait alors insérer '01/01/1900' si @DOB est passé comme NULL.

+0

si le paramètre date est nul alors la valeur dafault sera '01/01/1900 '. Je veux que ce soit NULL – Adarsh

0

Essayez:

coalesce(param, getdate()) 

dans votre procédure stockée ou définir une valeur par défaut sur votre colonne

ALTER TABLE dbo.Mitarbeiter ADD CONSTRAINT 
DF_Mitarbeiter_Geburtstag DEFAULT getdate() FOR Geburtstag 
+0

si la date Le paramètre est null alors la valeur dafault sera '01/01/1900 '. Je veux que ce soit NULL – Adarsh

+0

Ahhh - désolé, je me suis trompé. Pls. poster votre déclaration de création de table. – Arthur

2

Assurez-vous que vous passez vraiment en NULL, je pense que vous passez dans une chaîne vide. Si vous passez une chaîne vide, vous obtenez la valeur 1900-01-01 00:00:00.000 à laquelle vous faites référence. Nul sera nul et ne changera pas à une date.

essayer ce code de test:

declare @x datetime 

select 'is null', @x 

set @x='' 

select 'is empty string', @x 

SORTIE:

------- ----------------------- 
is null NULL 

(1 row(s) affected) 


--------------- ----------------------- 
is empty string 1900-01-01 00:00:00.000 

(1 row(s) affected) 
Questions connexes