SQL SQL Befehl in Tabelle eintragen und bei Bedarf ausführen

D0c_cR4Zy

Lieutenant
Registriert
Feb. 2007
Beiträge
658
Moin,

ich habe in einer Tabelle in einer Zelle den Wert
Code:
convert(varchar, getdate(), 112)
eingetragen mit TYP "Tagesdatum".

Nun möchte ich gegen diesen Wert vergleichen. Das klappt allerdings nicht.
Code:
Select * from Tabelle Where (CONVERT(varchar, Wert aus beliebiger Tabelle, 112)) > (Select WERT from Referenztabelle where TYP = 'Tagesdatum')

Ist es nicht möglich das so zu realisieren?

Schreibe ich das ganze direkt in die Syntax
Code:
Select * from Tabelle Where (CONVERT(varchar, Wert aus beliebiger Tabelle, 112)) > (convert(varchar, getdate(), 112))

funktioniert es problemlos.

Jemand eine Idee?

CYA_D0c
 
Moin,

Vielen Dank.

Kannst du mir interessehalber ein paar Gründe nennen?

CYA_D0C
 
Wegen dem Convert vermute ich mal, dass Du den Microsoft SQL-Server benutzt. Dort gibt es
sp_executesql bzw. Execute. Dynamisch generiertes SQL hat den Nachteil, dass der Server diese Statements weder Cachen noch im vollen Umfang optimieren kann.
 
Zuletzt bearbeitet: (Execute ergänzt)
SQL:
CREATE  function [dbo].[GetIsoDate]()
RETURNS char(8)
AS

BEGIN
    RETURN (SELECT CONVERT(char(8), Getdate(), 112))
END

So benutzen:

SQL:
select * from [table] where convert(char(8), [datumswert], 112) > dbo.GetIsoDate()

Bitteschön
 
Zuletzt bearbeitet:
Zurück
Oben