Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MAJ de champs dans une table

2 réponses
Avatar
Nesta
Bonjour à tous,

voici ma problématique : j'ai utilisé l'assistant migration vers SQL server
de MS Access pour migrer une base Access 97 vers MS SQL 2000 Server.
J'ai une table qui contient un champs date. Les dates ont été rentrées sous
n'importe quel format, par exemple :
- 02/02/2002
- 2/02/2002
- 2/2/2002
- 2/2/02
- Etc...

Ce qui fait que quand je fais une importation de données, il me fait une
erreur car il ne reconnait le format date.
J'ai été obligé de changer le format du champs de destination avec DTS en
text. Ca passe, mais les formats anarchiques demeurent.
Je souhaite trouver une requête (ou autre) qui puisse me permettre garder LE
bon format que je veux :
- 02/02/2002.

J'ai essayé un UPDATE, en tentant de faire une concaténation de caractère,
du genre :

UPDATE table1
SET DATE_DEPART = '0' + DATE_DEPART_DEP
FROM table1
WHERE (DATE_DEPART NOT LIKE '__/__/____')

Mais j'ai une erreur dans ma syntaxe....
Est-ce que quelqu'un pourrait m'aider sur cette requête, ou alors avez-vous
une meilleure solution svp ? Merci d'avance à tous.


Nesta

2 réponses

Avatar
Dominique Peralta
http://www.frenchsql.com/Default.aspx?page=5&ArticleIDS
A lire impérativement pour tout comprendre des dates sous SQL Server

"Nesta" a écrit dans le message de
news:
Bonjour à tous,

voici ma problématique : j'ai utilisé l'assistant migration vers SQL


server
de MS Access pour migrer une base Access 97 vers MS SQL 2000 Server.
J'ai une table qui contient un champs date. Les dates ont été rentrées


sous
n'importe quel format, par exemple :
- 02/02/2002
- 2/02/2002
- 2/2/2002
- 2/2/02
- Etc...

Ce qui fait que quand je fais une importation de données, il me fait une
erreur car il ne reconnait le format date.
J'ai été obligé de changer le format du champs de destination avec DTS en
text. Ca passe, mais les formats anarchiques demeurent.
Je souhaite trouver une requête (ou autre) qui puisse me permettre garder


LE
bon format que je veux :
- 02/02/2002.

J'ai essayé un UPDATE, en tentant de faire une concaténation de caractère,
du genre :

UPDATE table1
SET DATE_DEPART = '0' + DATE_DEPART_DEP
FROM table1
WHERE (DATE_DEPART NOT LIKE '__/__/____')

Mais j'ai une erreur dans ma syntaxe....
Est-ce que quelqu'un pourrait m'aider sur cette requête, ou alors


avez-vous
une meilleure solution svp ? Merci d'avance à tous.


Nesta




Avatar
Florent CORNEILLE
Moi j'aurais esssayé d'aligner les formats dans Access avant la migration.
Mais maintenant que c'est fait, je te propose de faire une requête pour
chaque format différent.

Je t'écris un exemple pour les 4 requêtes qui corrigent les 4 formats de
date que tu as affiché.

UPDATE Table1
SET LaDate = SUBSTRING(MauvaisFormat,7,4) + '/' +
SUBSTRING(MauvaisFormat,4,2) + '/' + SUBSTRING(MauvaisFormat,1,2)
WHERE MauvaisFormat LIKE '__/__/____'
GO
UPDATE Table1
SET LaDate = SUBSTRING(MauvaisFormat,6,4) + '/' +
SUBSTRING(MauvaisFormat,3,2) + '/0' + SUBSTRING(MauvaisFormat,1,1)
WHERE MauvaisFormat LIKE '_/__/____'
GO
UPDATE Table1
SET LaDate = SUBSTRING(MauvaisFormat,5,4) + '/0' +
SUBSTRING(MauvaisFormat,3,1) + '/0' + SUBSTRING(MauvaisFormat,1,1)
WHERE MauvaisFormat LIKE '_/_/____'
GO
UPDATE Table1
SET LaDate = '20' + SUBSTRING(MauvaisFormat,5,2) + '/0' +
SUBSTRING(MauvaisFormat,3,1) + '/0' + SUBSTRING(MauvaisFormat,1,1)
WHERE MauvaisFormat LIKE '_/_/__'
GO

Info : Moi j'écris les dates au format aaaa/mm/jj, au moins je suis sûr que
ça ne pause jamais de proclème (en générale, c'est dans l'application finale
qu'on choisi un format personnalisé). Tu adapteras l'exemple en fonction de
ce que tu voudra obtenir.

Autre info : j'ai considéré que dans tes dates, le jour était avant le mois
(et pas le mois avant le jour comme dans le format anglais). Parce que le 2
février, ça porte à confusion (pour tes prochains exemples, préfère un jour
qui est plus grand que 12 pour qu'on ne puisse pas le confondre avec le mois)

Bon courage ...

--
L''information n''est rien si elle n''est pas partagée.


"Nesta" a écrit :

Bonjour à tous,

voici ma problématique : j'ai utilisé l'assistant migration vers SQL server
de MS Access pour migrer une base Access 97 vers MS SQL 2000 Server.
J'ai une table qui contient un champs date. Les dates ont été rentrées sous
n'importe quel format, par exemple :
- 02/02/2002
- 2/02/2002
- 2/2/2002
- 2/2/02
- Etc...

Ce qui fait que quand je fais une importation de données, il me fait une
erreur car il ne reconnait le format date.
J'ai été obligé de changer le format du champs de destination avec DTS en
text. Ca passe, mais les formats anarchiques demeurent.
Je souhaite trouver une requête (ou autre) qui puisse me permettre garder LE
bon format que je veux :
- 02/02/2002.

J'ai essayé un UPDATE, en tentant de faire une concaténation de caractère,
du genre :

UPDATE table1
SET DATE_DEPART = '0' + DATE_DEPART_DEP
FROM table1
WHERE (DATE_DEPART NOT LIKE '__/__/____')

Mais j'ai une erreur dans ma syntaxe....
Est-ce que quelqu'un pourrait m'aider sur cette requête, ou alors avez-vous
une meilleure solution svp ? Merci d'avance à tous.


Nesta