Je veux convertir NVarchar en heure et date à l'aide de la commande de colonne de mise à jour dans le serveur SQL
update dbo.timeconvert set Duration = time(Duration_Load) , Estimated_Date_of_Arrival = date(Estimated_Date_of_Arrival)
Je veux mettre à jour le tableau horaire avec le type de données heure et date en conséquence dans la colonne suivante. p >
CREATE TABLE [dbo].[timeconvert]( [sno] [int] NULL, [Duration_Load] [nvarchar](7) NULL, [Duration] [time](7) NULL, [Estimated_Date_of_Arrival_Load] [nvarchar](10) NULL, [Estimated_Date_of_Arrival] [date] NULL ) INSERT [dbo].[timeconvert] VALUES (1, N'03:26', NULL, N'29.01.2019', NULL) ,(2, N'02:45', NULL, N'30.01.2019', NULL),(3, NULL, NULL, N'03.02.2019', NULL),(4, N'10.25', NULL, N'11.02.2019', NULL)
Le résultat attendu doit correspondre au format du type de colonne
3 Réponses :
utilisez les fonctions cast () et convert ()
update dbo.timeconvert set Duration = CONVERT( TIME, Duration_Load ), Estimated_Date_of_Arrival = cast(Estimated_Date_of_Arrival as date)
Veuillez essayer ceci.
UPDATE dbo.timeconvert SET Duration = CONVERT( TIME, Duration_Load ), Estimated_Date_of_Arrival = CONVERT(DATE,Estimated_Date_of_Arrival_Load)
Passer en dessous de l'erreur Msg 241, niveau 16, état 1, ligne 27 La conversion a échoué lors de la conversion de la date et / ou de l'heure à partir de la chaîne de caractères.
Veuillez remplacer la longueur du type de données [Estimated_Date_of_Arrival_Load] [nvarchar] (10) par [Estimated_Date_of_Arrival_Load] [nvarchar] (100)
toujours j'obtiens la même erreur
Vous pouvez essayer ceci:
UPDATE dbo.timeconvert
SET Duration = REPLACE(Duration_Load,'.',':'),
Estimated_Date_of_Arrival = SUBSTRING(Estimated_Date_of_Arrival_Load,4,2)+'/'+LEFT(Estimated_Date_of_Arrival_Load,2)+'/'+RIGHT(Estimated_Date_of_Arrival_Load,4)
Vous pouvez essayer ceci .... SELECT [sno], [Duration_Load], LEFT ([Duration], 5) AS [Duration], [Estimated_Date_of_Arrival_Load], [Estimated_Date_of_Arrival] FROM DBO. [Timeconvert]