Les valeurs vides dans la colonne de la Date de retour en tant que 1900/01/01 sur l'exécution d'une instruction SELECT
La colonne [DATE de remboursement] a certaines valeurs vides et certaines valeurs en mm/jj/aa format.
Je dois remplacer '/' par '-' et retourner la date sous la forme aaaa-mm-jj. La requête ci-dessous est de le faire. Le problème est que, pour toutes les valeurs à blanc, j'obtiens des résultats 1900-01-01.
Est-il possible de remplacer 1900-01-01 avec la valeur null et retour, d'autres valeurs de date dans le format aaaa-mm-jj?
Je suis à l'aide de SQL Server.
SELECT
cast(replace(a.[PAYOFF DATE],'/','-') as date)
FROM MTG a
Cela peut vous mettre sur la bonne piste. Vous pouvez convertir la date en une chaîne depuis datetime ne peut pas retourner une valeur vide. stackoverflow.com/questions/15554369/...
J'ai regardé ce lien déjà, mais dans mon cas, je dois faire deux choses, tout d'abord remplacer '/' par '-' et puis retourner la valeur NULL lorsque la date est dans 1900-01-01 donc je suis face à problème de l'exécution de ces deux opérations en une seule instruction.
J'ai regardé ce lien déjà, mais dans mon cas, je dois faire deux choses, tout d'abord remplacer '/' par '-' et puis retourner la valeur NULL lorsque la date est dans 1900-01-01 donc je suis face à problème de l'exécution de ces deux opérations en une seule instruction.
OriginalL'auteur Reeya Oberoi | 2014-04-09
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de faire de la manipulation de la chaîne comme vous l'avez montré dans votre question. Si vous avez des dates stockées dans
mm/dd/yyyy
format de les jeter comme DATE.Pour
1900-01-01
valeurs, puisque vous êtes la conversion du type de données string pour la Date, le type de données Chaîne peut avoir des chaînes Vides mais le type de données de Date ne peut pas avoir de vide de valeurs de date, Il peut avoir une valeur de date ouNULL
valeur.Par conséquent, vous avez besoin de convertir une chaîne de caractères vide à null avant de la convertir à ce jour. 1900-01-01 est juste une valeur par défaut de sql server met en pour vous parce que type de données de Date ne peut pas avoir une valeur vide.
Vous pouvez éviter d'avoir ce serveur sql valeur par défaut en faisant quelque chose comme cela.
Pas un problème un plaisir de vous aider 🙂
OriginalL'auteur M.Ali