J'ai une table qui contient les valeurs 'NULL' qui sont du type 'Datetime'. Maintenant, je dois convertir ceux-ci en chaîne vide, mais quand j'utilise la fonction de conversion
ISNULL( [Accrued Out of Default] ,'' )
ici, la valeur par défaut est de type date/heure. Ce qui est remplacé par "1900-01-01 00: 00: 00.000" au lieu de "vide"
Ensuite, j'essaie de les convertir en varchar et de les appliquer
ISNULL(CONVERT(varchar(50), [Amort Into Default] ),'')
Maintenant, je suis capable de convertir en chaîne vide, mais maintenant, ces date-heure sont converties en chaîne dont j'avais besoin dans datetime J'essaie donc de CAST, CONVERT mais aucun d'entre eux ne fonctionne.
CONVERT(Datetime,'ISNULL(CONVERT(varchar(50), [Amort Into Default] ),'')',120)
Cela donne une erreur.
Y at-il une solution possible à cela.
> **Solution Hi someone answered this to do as.
> ISNULL(CONVERT(varchar(50), [Amort Into Default] ,120),'') and it works I dont know why .
**
CASE et CAST devraient fonctionner:
CASE WHEN mycol IS NULL THEN '' ELSE CONVERT(varchar(50), mycol, 121) END
utiliser un ISNULL est le meilleur moyen que j'ai trouvé pour contourner le NULL en dates
ISNULL(CASE WHEN CONVERT(DATE, YOURDate) = '1900-01-01' THEN '' ELSE CONVERT(CHAR(10), YOURDate, 103) END, '') AS [YOUR Date]
Cela fonctionne aussi:
REPLACE(ISNULL(CONVERT(DATE, @date), ''), '1900-01-01', '') AS 'Your Date Field'
declare @date datetime; set @date = null
--declare @date datetime; set @date = '2015-01-01'
select coalesce( convert( varchar(10), @date, 103 ), '')
select case when IsNull(CONVERT(DATE, StartDate),'')='' then 'NA' else Convert(varchar(10),StartDate,121) end from table1
Select isnull(date_column_name,cast('1900-01-01' as DATE)) from table name
Vous pouvez essayer ce qui suit
sélectionnez cas où mydatetime IS NULL THEN '' else converti (varchar (20), @ mydatetime, 120) fin en tant que convert_date de sometable
-- Testing it out could do --
declare @mydatetime datetime
set @mydatetime = GETDATE() -- comment out for null value
--set @mydatetime = GETDATE()
select
case when @mydatetime IS NULL THEN ''
else convert(varchar(20),@mydatetime,120)
end as converted_date
J'espère que cela t'aides!