Announcement

Collapse
No announcement yet.

convert

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • convert

    Hi Leute,

    hab da mal ne Frage:
    Warum funktioniert der Filter bei diesem Select nicht:
    Code:
    SELECT convert(varchar(10),lastseen,104) ,[datum] ,[resnr] ,[reslinnr] ,[logis]
          ,[food] ,[bev] ,[sonst] ,[gast]
      FROM [xxx].[xx].[tablename]
    where convert(varchar(10),lastseen,104) > '01.01.2011'
    order by lastseen, resnr, datum asc
    ?

    Wenn ich die convert-Funktion weglasse, funktionierts:
    Code:
    SELECT convert(varchar(10),lastseen,104) ,[datum] ,[resnr] ,[reslinnr] ,[logis]
          ,[food] ,[bev] ,[sonst] ,[gast]
      FROM [xxx].[xx].[tablename]
    where lastseen > '01.01.2011'
    order by lastseen, resnr, datum asc
    .

    Geht convert/cast nicht, wenn man es auf Spalten direkt bezieht? Oder hab ich n Denkfehler?

    Bitte um Hilfe

    bg
    daman

  • #2
    Ich vermute mal, mit dem "Filter geht nicht" heißt, daß du unerwartete Ergebnisse bekommst. Beim ersten Select wandelst du den Datumswert in einen String um, hast also am Ende einen Stringvergleich. Das kann klappen, muss aber nicht, speziell bei deutscher Datumsschreibweise (dd.mm.yyyy).

    Beim zweiten Select machst du keine explizite Konvertierung, also führt der SQL Server eine implizite Konvertierung durch. Und zwar wird die String-Konstante in einen Datumswert konvertiert, bevor der Vergleich gemacht wird. Deswegen funktioniert das.

    Am Besten machst du selbst einen expliziten Convert auf die String-Konstante, dann bist du davon unabhängig ob der SQL Server das Format richtig errät. Und im Gegensatz zu deinem ersten SELECT wird die Konvertierung nur einmal auf die Stringkonstante gemacht, statt auf die Datumswerte aller Zeilen der Tabelle.

    Gruß,
    Martin

    Comment


    • #3
      Hallo Martin,

      danke für die Informationen. Deine Annahmen sind korrekt. Filter geht zwar, aber Ergebnisse sind nicht wie erwartet.

      Die Information, dass die "...Konvertierung nur einmal..." gemacht wird war sehr hilfreich für mich.

      Vielen Dank und ein schönes Wochenende

      Comment

      Working...
      X