Salut a tous et merci pour lire ma petite question!
J'ai besoin d'utiliser la fonction dateadd et il parait qu'il me manque quelque chose pour bien comprendre l'utilisation dans divers examples de cette fonction.
Je ne sais pas pourquoi cette fonction ne marche pas
Voila le code:
Erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 DECLARE @datetime datetime SET @datetime= '2007-01-01 13:10:10.1111111' SELECT 'year', DATEADD(year,1,@datetime) UNION ALL SELECT 'quarter',DATEADD(quarter,1,@datetime) UNION ALL SELECT 'month',DATEADD(month,1,@datetime) UNION ALL SELECT 'dayofyear',DATEADD(dayofyear,1,@datetime) UNION ALL SELECT 'day',DATEADD(day,1,@datetime) UNION ALL SELECT 'week',DATEADD(week,1,@datetime) UNION ALL SELECT 'weekday',DATEADD(weekday,1,@datetime) UNION ALL SELECT 'hour',DATEADD(hour,1,@datetime) UNION ALL SELECT 'minute',DATEADD(minute,1,@datetime) UNION ALL SELECT 'second',DATEADD(second,1,@datetime) UNION ALL SELECT 'millisecond',DATEADD(millisecond,1,@datetime)
Resultat voulu par le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Msg 241, Level 16, State 1, Line 2 Conversion failed when converting datetime from character string.
Aussi l'example suivante comporte la meme erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Year 2008-01-01 13:10:10.1111111 quarter 2007-04-01 13:10:10.1111111 month 2007-02-01 13:10:10.1111111 dayofyear 2007-01-02 13:10:10.1111111 day 2007-01-02 13:10:10.1111111 week 2007-01-08 13:10:10.1111111 weekday 2007-01-02 13:10:10.1111111 hour 2007-01-01 14:10:10.1111111 minute 2007-01-01 13:11:10.1111111 second 2007-01-01 13:10:11.1111111 millisecond 2007-01-01 13:10:10.1121111
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DECLARE @datetime2 datetime; SET @datetime2 = '2007-01-01 01:01:01.1111111'; --Statement Result ------------------------------------------------------------------- SELECT DATEADD(quarter,4,@datetime2); --2008-01-01 01:01:01.110 SELECT DATEADD(month,13,@datetime2); --2008-02-01 01:01:01.110 SELECT DATEADD(dayofyear,365,@datetime2); --2008-01-01 01:01:01.110 SELECT DATEADD(day,365,@datetime2); --2008-01-01 01:01:01.110 SELECT DATEADD(week,5,@datetime2); --2007-02-05 01:01:01.110 SELECT DATEADD(weekday,31,@datetime2); --2007-02-01 01:01:01.110 SELECT DATEADD(hour,23,@datetime2); --2007-01-02 00:01:01.110 SELECT DATEADD(minute,59,@datetime2); --2007-01-01 02:00:01.110 SELECT DATEADD(second,59,@datetime2); --2007-01-01 01:02:00.110 SELECT DATEADD(millisecond,1,@datetime2); --2007-01-01 01:01:01.110
Partager