Datums abfrage aus MS SQL Server

12/12/2008 - 10:48 von Andreas Vogt | Report spam
Hallo,
habe in einer MS SQL Server Tabelle ein Feld namens TIME stehen, als
nchar(15).
Darin steht ein Zeitstempel in diesem Format: yyyymmddhhnnss

Um nun Datensàtze eines bestimmten Jahres und Monats zu holen habe ich
diese Abfragen innerhalb Access getestet:

SELECT *
FROM Tabelle1
Where cdbl(TIME) between 20081201000000 AND 20081231235959

SELECT *
FROM Tabelle1
Where TIME between '20081201000000' AND '20081231235959'

Beides funktioniert wobei ich erstere Variante für die saubere halte
da ich im Typ bleibe.
Was wird aber funktionieren wenn ich auf den SQL Server zugreife?

Gruß Andreas
 

Lesen sie die antworten

#1 Henry Habermacher
12/12/2008 - 11:19 | Warnen spam
Hallo Andreas

Andreas Vogt wrote:
habe in einer MS SQL Server Tabelle ein Feld namens TIME stehen, als
nchar(15).



=
Darin steht ein Zeitstempel in diesem Format: yyyymmddhhnnss

Um nun Datensàtze eines bestimmten Jahres und Monats zu holen habe ich
diese Abfragen innerhalb Access getestet:

SELECT *
FROM Tabelle1
Where cdbl(TIME) between 20081201000000 AND 20081231235959

SELECT *
FROM Tabelle1
Where TIME between '20081201000000' AND '20081231235959'

Beides funktioniert wobei ich erstere Variante für die saubere halte
da ich im Typ bleibe.



Falsch. Das Feld ist ein NCHAR(15), wie Du schreibst. Wenn Du das mit CDbl()
umwandelst, dann ist es eine Umwandlung, die nicht notwendig ist.

Was wird aber funktionieren wenn ich auf den SQL Server zugreife?



Der SQL Server kennt grundzàtzlich kein CDBL(), der kennt allenfalls ein
CAST oder CONVERT. Du wirst mit Jet Funktionsaufrufen in der WHERE Bedingung
ziemlich sicher den SQL Server daran hindern, selber nach den richtigen
Werten zu suchen und die Filterung im Client machen müssen. Im Fall eines
String Vergleiches kann das der SQL Server selber machen. Der 2. Variante
ist daher definitiv den Vorzug zu geben.

Gruss
Henry


Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen