193 votes

Échec de la conversion de la date et/ou de l'heure à partir d'une chaîne de caractères lors de l'insertion d'une date.

J'essayais de créer une table comme suit,

create table table1(date1 datetime,date2 datetime);

J'ai d'abord essayé d'insérer des valeurs comme ci-dessous,

insert into table1 values('21-02-2012 6:10:00 PM','01-01-2001 12:00:00 AM');

Il a donné l'erreur disant,

Impossible de convertir une variable en date

Ensuite, j'ai essayé le format ci-dessous, comme l'un des postes suggérés par notre stackoverflow,

insert into table1 values(convert(datetime,'21-02-2012 6:10:00 PM',5)
                          ,convert(datetime,'01-01-2001 12:00:00 AM',5));

Mais je reçois toujours l'erreur disant,

Échec de la conversion de la date et/ou de l'heure à partir d'une chaîne de caractères

Des suggestions ?

5voto

Abd Abughazaleh Points 75

Je l'ai essayé et ça marche avec moi :

SELECT CONVERT(date, yourDate ,104)

3voto

vapcguy Points 48

J'ai eu ce problème en essayant de concaténer getdate() dans une chaîne de caractères que j'insérais dans un champ nvarchar.

J'ai fait quelques moulages pour contourner le problème :

 INSERT INTO [SYSTEM_TABLE] ([SYSTEM_PROP_TAG],[SYSTEM_PROP_VAL]) VALUES 
   (
    'EMAIL_HEADER',
    '<h2>111 Any St.<br />Anywhere, ST 11111</h2><br />' + 
        CAST(CAST(getdate() AS datetime2) AS nvarchar) + 
    '<br /><br /><br />'
   )

C'est un exemple aseptisé. La partie clé est :

...' + CAST(CAST(getdate() AS datetime2) AS nvarchar) + '...

La date a été fixée à datetime2 alors que nvarchar pour le concaténer.

2voto

ARLE ANDINO Points 21
convert(datetime2,((SUBSTRING( ISNULL(S2.FechaReal,e.ETA),7,4)+'-'+ SUBSTRING( ISNULL(S2.FechaReal,e.ETA),4,2)+'-'+ SUBSTRING( ISNULL(S2.FechaReal,e.ETA),1,2) + ' 12:00:00.127')))  as fecha,

2voto

Roger Points 499

Voici comment convertir facilement une chaîne ISO en une chaîne SQL-Server. datetime :

INSERT INTO time_data (ImportateDateTime) VALUES (CAST(CONVERT(datetimeoffset,'2019-09-13 22:06:26.527000') AS datetime))

Fuente https://www.sqlservercurry.com/2010/04/convert-character-string-iso-date-to.html

1voto

Joel Wiklund Points 1173

Pour moi, cela a fonctionné :

INSERT INTO [MyTable]
           ([ValidFrom]
           ,[ValidTo])
       VALUES
           ('2020-01-27 14:54:11.000'
           ,'2023-01-27 14:52:50.000')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X