web-dev-qa-db-fra.com

Remplacez les valeurs NULL au format Datetime par une chaîne vide

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 .

**

19
Ke7in

CASE et CAST devraient fonctionner:

CASE WHEN mycol IS NULL THEN '' ELSE CONVERT(varchar(50), mycol, 121) END
34
Bohemian

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]
8
GPH

Cela fonctionne aussi:

REPLACE(ISNULL(CONVERT(DATE, @date), ''), '1900-01-01', '') AS 'Your Date Field'
2
Ryan Pratt
declare @date datetime; set @date = null
--declare @date datetime; set @date = '2015-01-01'

select coalesce( convert( varchar(10), @date, 103 ), '')
1
shadow
select case when IsNull(CONVERT(DATE, StartDate),'')='' then 'NA' else Convert(varchar(10),StartDate,121) end from table1
0
Select isnull(date_column_name,cast('1900-01-01' as DATE)) from table name
0
mohd imran khan

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!

0
SQL Chef