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

Comparaison de dates ...

4 réponses
Avatar
SuperGolgoth
Bonjour a tous,
j'ai un petit soucis pour comparer un champ date et un champ char(8) ou
la date est stockée sous la forme 38789 (nb de jour depuis 01/01/1900

a savoir il faudrait qqchose comme ca :
select * from table1 t1
left join table2 t2 on t2.champ_char8 = t1.champdate

Manifestement il manque quelque chose ... mais quoi ?

Merci de votre aide

4 réponses

Avatar
GLB
Salut,


a savoir il faudrait qqchose comme ca :
select * from table1 t1
left join table2 t2 on t2.champ_char8 = t1.champdate




champdate est de quel forme ?

Gilles
Avatar
GLB
re bonjour,
si chamdate est une date

DATEDIFF ( day , '01/01/1900' ,champdate )

te donnera le nombre de jour depuis le '01/01/1900'


cela donne

select * from table1 t1
left join table2 t2 on CONVERT(int,t2.champ_char8) = DATEDIFF ( day ,
'01/01/1900' ,t1.champdate )

non testé

A+
Gilles

"SuperGolgoth" a écrit dans le message de news:

Bonjour a tous,
j'ai un petit soucis pour comparer un champ date et un champ char(8) ou la
date est stockée sous la forme 38789 (nb de jour depuis 01/01/1900

a savoir il faudrait qqchose comme ca :
select * from table1 t1
left join table2 t2 on t2.champ_char8 = t1.champdate

Manifestement il manque quelque chose ... mais quoi ?

Merci de votre aide




Avatar
Fred BROUARD
SuperGolgoth a écrit :
Bonjour a tous,
j'ai un petit soucis pour comparer un champ date et un champ char(8) ou
la date est stockée sous la forme 38789 (nb de jour depuis 01/01/1900

a savoir il faudrait qqchose comme ca :
select * from table1 t1
left join table2 t2 on t2.champ_char8 = t1.champdate

Manifestement il manque quelque chose ... mais quoi ?

Merci de votre aide





SELECT *
FROM table1 t1
LEFT OUTER JOIN table2 t2
ON CAST(t2.champ AS FLOAT) = CAST(t1.champdate AS FLOAT)

A +


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
SuperGolgoth
Excellent ... ca marche et c'est court, donc j'adopte .

Merci beaucoup ...



Fred BROUARD avait prétendu :
SuperGolgoth a écrit :
Bonjour a tous,
j'ai un petit soucis pour comparer un champ date et un champ char(8) ou la
date est stockée sous la forme 38789 (nb de jour depuis 01/01/1900

a savoir il faudrait qqchose comme ca :
select * from table1 t1
left join table2 t2 on t2.champ_char8 = t1.champdate

Manifestement il manque quelque chose ... mais quoi ?

Merci de votre aide





SELECT *
FROM table1 t1
LEFT OUTER JOIN table2 t2
ON CAST(t2.champ AS FLOAT) = CAST(t1.champdate AS FLOAT)

A +