2013-05-08 3 views
1

Je dois ajouter 1 jour à la date actuelle et avoir la sortie au format aaaammjj. Le code doit être écrit sur une procédure stockée sur le serveur SQL.Comment ajouter 1 jour à la date du jour et avoir le format au format yyyymmdd dans SQL Server?

actuellement mon code est le suivant:

DECLARE @dat DATE 

    select @dat = dateadd(DD, 1, getdate()) 
    SELECT @dat =LEFT(CONVERT(VARCHAR(8), @dat, 112),10) 

Cependant, il semble que im faire quelque chose de mal que ma sortie sur la table SQL est au format aaaa-mm-jj. Je dois me débarrasser des traits d'union.

des suggestions les gars? Merci d'avance.

+3

Pourquoi vous souciez-vous des tirets? Vous renvoyez une * date *, pas une * chaîne *. Inquiétude à propos du formatage sur le client. En ce moment vous vous fâchez sur la façon dont Management Studio vous rend la date. En outre, s'il vous plaît arrêter d'utiliser sténo paresseux. Pourquoi 'DD' est-il meilleur que' DAY'? –

+3

Voulez-vous une chaîne ou une date en tant que sortie de Proc? Si vous avez besoin d'une date, le format n'est pas pertinent, si vous avez besoin d'une chaîne, changez la déclaration de @dat en une chaîne. –

+0

merci pour les sugestions. voulait une chaîne comme sortie. – Kasanova

Répondre

0
select @dat = dateadd(DD, 1, getdate()) 
DECLARE @datCus varchar(8) 
select @datCus=LEFT(CONVERT(VARCHAR(8), @dat, 112),10) 

Le problème était que je @dat affecté aux valeurs des instructions d'insertion. Cependant, avoir une variable varchar pour gérer la partie de conversion a résolu le problème (dans ce cas, @datCus).

1

Modifier la déclaration de @dat à un STRING

3

Le problème est que vous assignez revenir à un objet date. Vous devez l'assigner à un varchar.

j'ai fait ce qui suit dans SQL Server 2005:

DECLARE @dat DATETIME 
DECLARE @string varchar(8) 
SET @dat = GetUtcDate() 

    select @dat = dateadd(DD, 1, getdate()) 

    SELECT @string =CONVERT(VARCHAR(8), @dat, 112) 
PRINT @string 
0

Essayez celui -

DECLARE @date VARCHAR(8) 
SELECT @date = CONVERT(VARCHAR(8), DATEADD(DAY, 1, GETDATE()), 112) 

SELECT @date 
Questions connexes