Ora in sql server

lunedì 06 agosto 2007 - 08.08

getfar Profilo | Junior Member

Ciao a tutti, avrei bisogno di una piccola mano.
Ho un campo datetime in due tabelle di sql server 2005 (tabA e tabB).
Devo fare un join proprio sul campo data ma vorrei che le ore fossero inifluenti.
Cioè
select *
from tabA left join tabB on tabA.data=tabB.data
( vorrei fare il join solo sulla data e non anche sulle se no non restituisce nulla).
Sapete aiutarmi?^
grazie 1000

lbenaglia Profilo | Guru

>Ciao a tutti, avrei bisogno di una piccola mano.
>Ho un campo datetime in due tabelle di sql server 2005 (tabA
>e tabB).
>Devo fare un join proprio sul campo data ma vorrei che le ore
>fossero inifluenti.

Ciao getfar,

l'unica soluzione che mi viene in mente consiste nel castare a stringa le colonne data, anche se questa operazione risulterà piuttosto inefficiente dato che eventuali indici definiti su tali colonne non verranno presi in cosiderazione dal Query Optimizer:

SELECT * FROM dbo.tabA LEFT JOIN dbo.tabB ON CONVERT(char(8), tabA.data, 112) = CONVERT(char(8), tabB.data, 112)

Per maggiori dettagli consulta il seguente paragrafo sui Books Online:

"CAST and CONVERT (Transact-SQL)"
http://msdn2.microsoft.com/en-us/library/ms187928.aspx

>grazie 1000
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

getfar Profilo | Junior Member

grazie 1000.
Dici che l'unico modo sia:

convert(char(8),tabA.data,102) ???




lbenaglia Profilo | Guru

>Dici che l'unico modo sia:
>convert(char(8),tabA.data,102) ???
No, lo stile deve essere 112 non 102.
Di modi ne esistono infiniti, a partire da un design corretto della base dati

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

getfar Profilo | Junior Member

Grazie di tutto
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5