Convertir datetime pour aaaammjjhhmmss dans sql server
J'ai besoin de calculer l'heure locale de aaaammjjhhmmss et le retourner comme aaaammjjhhmmss. J'ai essayé de l'en-dessous, c'est un travail, mais je ne suis pas en mesure de se débarrasser du nom du mois.
Declare @VarCharDate varchar(max)
Declare @VarCharDate1 varchar(max)
Declare @VarCharDate2 varchar(max)
--Declare
set @VarCharDate = '20131020215735' --- YYYYMMDDHHMMSS
--Convert
set @VarCharDate1 =(select SUBSTRING(@VarCharDate,0,5) + '/' + SUBSTRING(@VarCharDate,5,2) + '/' + SUBSTRING(@VarCharDate,7,2) + ' ' + SUBSTRING(@VarCharDate,9,2) +':'+SUBSTRING(@VarCharDate,11,2) +':' + RIGHT(@VarCharDate,2))
select @VarCharDate1
--Convert to Date and Add offset
set @VarCharDate2 = DATEADD(HOUR,DateDiff(HOUR, GETUTCDATE(),GETDATE()),CONVERT(DATETIME,@VarCharDate1,20))
select @VarCharDate2
-- Now we need to revert it to YYYYMMDDhhmmss
--Tried this but month name still coming
Select convert(datetime, @VarCharDate2, 120)
- Concernant, "de aaaammjjhhmmss et le retourner comme aaaammjjhhmmss", ces deux formats de regarder la même chose pour moi. Dans tous les cas, si vous partez avec une chaîne, mauvaise idée en passant, jette à un datetime et ensuite revenir à une chaîne de caractères dans le format souhaité. Pas besoin de sous-chaînes.
Vous devez vous connecter pour publier un commentaire.
Essayer ce -
Il sera de retour
par l'utilisation de type de données datetime, vous aurez toujours la bonne datetime
Je pense que lorsque vous traitez avec des colonnes de Date, nous devons aussi être pour compenser de mauvaises données. Ajouté des Étapes de Validation et nettoyé code